diff --git a/.changeset/ai-models-catalog.md b/.changeset/ai-models-catalog.md new file mode 100644 index 0000000000..158b655642 --- /dev/null +++ b/.changeset/ai-models-catalog.md @@ -0,0 +1,9 @@ +--- +'@tanstack/ai-models': minor +--- + +New package: a runtime catalog of 1,853 models across 38 providers, generated from models.dev and the OpenRouter and Vercel AI Gateway model lists. `getProviders`, `getModels`, and `getModel` return each model's id, input modalities, context window, output limit, prices, reasoning data, and request quirks (`compat`). A record's `reasoning` has the `ModelReasoning` shape of `@tanstack/ai` (`false`, or `{ levels, budget }`). `supportedReasoningLevels`, `clampReasoningLevel`, and `modelCost` work on a record, and `generatedAt` is the date of the data. Each provider also has its own subpath, for example `@tanstack/ai-models/deepseek`. + +`modelCost` prices long context and 1-hour cache writes. A record's `cost.tiers` (from models.dev) holds higher prices above an input size, and a call uses the tier with the highest `inputTokensAbove` below its input. `TokenCounts.cacheWrite1h`, the part of `cacheWrite` with a 1-hour retention, costs 2 times the input price. + +The `google-vertex` and `azure-openai-responses` providers have only the models on their own wire, so no Claude models. Use `anthropicVertexText` from `@tanstack/ai-anthropic/vertex` for Claude on Vertex. Embedding, reranking, and transcription models are not in the catalog. diff --git a/docs/config.json b/docs/config.json index ba16ab89da..e9573bfb41 100644 --- a/docs/config.json +++ b/docs/config.json @@ -1634,6 +1634,11 @@ "to": "advanced/extend-adapter-advanced", "addedAt": "2026-10-21" }, + { + "label": "Model Catalog", + "to": "models/catalog", + "addedAt": "2026-10-14" + }, { "label": "Typed Pre-Configured Options", "to": "advanced/typed-options", diff --git a/docs/models/catalog.md b/docs/models/catalog.md new file mode 100644 index 0000000000..491e4f76e1 --- /dev/null +++ b/docs/models/catalog.md @@ -0,0 +1,125 @@ +--- +title: Model Catalog +id: catalog +description: "Look up models, reasoning levels, prices, and context windows at runtime with @tanstack/ai-models." +keywords: + - tanstack ai + - model catalog + - models.dev + - model metadata + - reasoning levels + - model pricing +--- + +A model picker, a cost display, or a settings menu needs facts about models at runtime: which models a provider has, which reasoning levels a model takes, and what a call costs. `@tanstack/ai-models` is a catalog of that data for more than 1,800 models across 38 providers. + +## Install + + + +react: @tanstack/ai-models +vue: @tanstack/ai-models +solid: @tanstack/ai-models +svelte: @tanstack/ai-models +preact: @tanstack/ai-models +angular: @tanstack/ai-models +vanilla: @tanstack/ai-models +octane: @tanstack/ai-models + + + +## Look up a model + +```typescript +import { getModel, getModels, getProviders } from "@tanstack/ai-models"; + +const providers = getProviders(); // every provider: id, name, baseUrl, env +const deepseekModels = getModels("deepseek"); // every DeepSeek model +const model = getModel("deepseek", "deepseek-v4-flash"); + +console.log(model?.contextWindow, model?.maxTokens, model?.input); +``` + +Each record has the model's `id`, `name`, `input` modalities, `contextWindow`, `maxTokens`, prices, and reasoning data. `getModel` returns `undefined` for a model the catalog does not have. + +The `google-vertex` provider has the Gemini models only. For Claude on Vertex, use `anthropicVertexText` from `@tanstack/ai-anthropic/vertex`. + +## Show the reasoning levels + +`supportedReasoningLevels` gives the levels a model takes. Use it to fill a menu: + +```typescript +import { getModel, supportedReasoningLevels } from "@tanstack/ai-models"; + +const model = getModel("deepseek", "deepseek-v4-flash"); +const levels = model ? supportedReasoningLevels(model) : []; +// ["off", "low", "high", "max"] +``` + +`clampReasoningLevel(model, level)` gives the nearest level the model has, for a level it does not have. Pass the level to [`chat({ reasoning })`](../chat/reasoning). + +A record's `reasoning` is `false` for a model that does not reason. Otherwise it has two fields: + +- `levels`: the provider value to send for each level the model has. +- `budget`: `true` when the model takes a thinking token budget. + +This is the same shape as `ModelReasoning` in `@tanstack/ai`. + +## Work out what a call cost + +Prices are in USD per million tokens. `modelCost` turns token counts into a cost. `input` is the uncached input: + +```typescript +import { getModel, modelCost } from "@tanstack/ai-models"; + +const model = getModel("openai", "gpt-5.6"); +if (model) { + const cost = modelCost(model, { input: 12_000, output: 800 }); + console.log(cost.total.toFixed(4)); +} +``` + +`modelCost` also uses two price rules: + +- **Long context.** Some models cost more above an input size. The record lists these prices in `cost.tiers`. A call uses the tier with the highest `inputTokensAbove` below its input (uncached, plus cache reads, plus cache writes). +- **1-hour cache writes.** `cacheWrite1h` is the part of `cacheWrite` that has a 1-hour retention. It costs 2 times the input price. + +To price each call of a chat, read its usage in middleware: + +```typescript +import type { ChatMiddleware } from "@tanstack/ai"; +import { getModel, modelCost } from "@tanstack/ai-models"; + +const model = getModel("anthropic", "claude-sonnet-5-5"); + +const logCost: ChatMiddleware = { + name: "log-cost", + onUsage(_ctx, usage) { + if (!model) return; + const details = usage.promptTokensDetails; + const cacheRead = details?.cachedTokens ?? 0; + const cacheWrite = details?.cacheWriteTokens ?? 0; + const cost = modelCost(model, { + input: usage.promptTokens - cacheRead - cacheWrite, + output: usage.completionTokens, + cacheRead, + cacheWrite, + }); + console.log(cost.total.toFixed(4)); + }, +}; +``` + +## Load one provider only + +The root import has every provider. To load only one, import its subpath: + +```typescript +import { models, provider } from "@tanstack/ai-models/deepseek"; + +console.log(provider.baseUrl, models.length); +``` + +## Keep it up to date + +The catalog comes from [models.dev](https://models.dev) and the OpenRouter and Vercel AI Gateway model lists. `generatedAt` is the date of the last update. A record with `borrowedFrom` took its data from the same model at another provider. diff --git a/package.json b/package.json index 2a12ce279a..87140d1f8b 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,8 @@ "generate:fal-image-fields": "tsx scripts/generate-fal-image-field-map.ts", "generate:models": "pnpm generate:models:fetch && pnpm regenerate:models && tsx scripts/sync-elevenlabs-models.ts && tsx scripts/sync-provider-models.ts && pnpm format", "generate:models:elevenlabs": "tsx scripts/sync-elevenlabs-models.ts", - "generate:models:fetch": "tsx scripts/fetch-openrouter-models.ts && tsx scripts/fetch-vercel-gateway-models.ts && tsx scripts/fetch-lovable-gateway-models.ts && node scripts/fetch-llmgateway-models.ts", - "regenerate:models": "tsx scripts/convert-openrouter-models.ts && tsx scripts/convert-vercel-gateway-models.ts && node scripts/convert-llmgateway-models.ts", + "generate:models:fetch": "tsx scripts/fetch-openrouter-models.ts && tsx scripts/fetch-vercel-gateway-models.ts && tsx scripts/fetch-lovable-gateway-models.ts && node scripts/fetch-llmgateway-models.ts && tsx scripts/fetch-models-dev.ts", + "regenerate:models": "tsx scripts/convert-openrouter-models.ts && tsx scripts/convert-vercel-gateway-models.ts && node scripts/convert-llmgateway-models.ts && tsx scripts/generate-ai-models.ts", "sync-docs-config": "node scripts/sync-docs-config.ts", "copy:readme": "node scripts/copy-readme.js", "changeset": "changeset", diff --git a/packages/ai-models/LICENSE b/packages/ai-models/LICENSE new file mode 100644 index 0000000000..308cb68dc0 --- /dev/null +++ b/packages/ai-models/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Tanner Linsley + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/ai-models/README.md b/packages/ai-models/README.md new file mode 100644 index 0000000000..d616264131 --- /dev/null +++ b/packages/ai-models/README.md @@ -0,0 +1,40 @@ +
+ + + + TanStack AI + +
+ +
+ +# @tanstack/ai-models + +A model catalog you can read at runtime: each model's context window, price, reasoning levels, input kinds, and wire quirks, for about 1,850 models across 38 providers. + +```ts +import { getModel, modelCost, clampReasoningLevel } from '@tanstack/ai-models' + +const model = getModel('deepseek', 'deepseek-v4-flash') +if (model) { + model.contextWindow // 1000000 + modelCost(model, { input: 12_000, output: 800 }).total // USD + clampReasoningLevel(model, 'medium') // 'high': the nearest level the model has +} +``` + +- No dependencies, and no Node.js APIs, so it runs on edge runtimes too. +- One subpath per provider (`@tanstack/ai-models/deepseek`), so a build ships only the providers it imports. +- The data comes from [models.dev](https://models.dev) and the OpenRouter and Vercel model lists. `pnpm generate:models` refreshes it. + +Read the guide: [Model catalog](https://tanstack.com/ai/latest/docs/models/catalog). diff --git a/packages/ai-models/package.json b/packages/ai-models/package.json new file mode 100644 index 0000000000..1dc57084aa --- /dev/null +++ b/packages/ai-models/package.json @@ -0,0 +1,213 @@ +{ + "name": "@tanstack/ai-models", + "version": "0.0.0", + "description": "A runtime model catalog for TanStack AI: context windows, prices, reasoning levels, and wire quirks per provider.", + "author": "Tanner Linsley", + "license": "MIT", + "homepage": "https://tanstack.com/ai", + "repository": { + "type": "git", + "url": "git+https://github.com/TanStack/ai.git", + "directory": "packages/ai-models" + }, + "bugs": { + "url": "https://github.com/TanStack/ai/issues" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "type": "module", + "sideEffects": false, + "module": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts", + "exports": { + ".": { + "types": "./dist/esm/index.d.ts", + "import": "./dist/esm/index.js" + }, + "./amazon-bedrock": { + "types": "./dist/esm/providers/amazon-bedrock.d.ts", + "import": "./dist/esm/providers/amazon-bedrock.js" + }, + "./ant-ling": { + "types": "./dist/esm/providers/ant-ling.d.ts", + "import": "./dist/esm/providers/ant-ling.js" + }, + "./anthropic": { + "types": "./dist/esm/providers/anthropic.d.ts", + "import": "./dist/esm/providers/anthropic.js" + }, + "./azure-openai-responses": { + "types": "./dist/esm/providers/azure-openai-responses.d.ts", + "import": "./dist/esm/providers/azure-openai-responses.js" + }, + "./baseten": { + "types": "./dist/esm/providers/baseten.d.ts", + "import": "./dist/esm/providers/baseten.js" + }, + "./cerebras": { + "types": "./dist/esm/providers/cerebras.d.ts", + "import": "./dist/esm/providers/cerebras.js" + }, + "./cloudflare-ai-gateway": { + "types": "./dist/esm/providers/cloudflare-ai-gateway.d.ts", + "import": "./dist/esm/providers/cloudflare-ai-gateway.js" + }, + "./cloudflare-workers-ai": { + "types": "./dist/esm/providers/cloudflare-workers-ai.d.ts", + "import": "./dist/esm/providers/cloudflare-workers-ai.js" + }, + "./deepseek": { + "types": "./dist/esm/providers/deepseek.d.ts", + "import": "./dist/esm/providers/deepseek.js" + }, + "./fireworks": { + "types": "./dist/esm/providers/fireworks.d.ts", + "import": "./dist/esm/providers/fireworks.js" + }, + "./google": { + "types": "./dist/esm/providers/google.d.ts", + "import": "./dist/esm/providers/google.js" + }, + "./google-vertex": { + "types": "./dist/esm/providers/google-vertex.d.ts", + "import": "./dist/esm/providers/google-vertex.js" + }, + "./groq": { + "types": "./dist/esm/providers/groq.d.ts", + "import": "./dist/esm/providers/groq.js" + }, + "./huggingface": { + "types": "./dist/esm/providers/huggingface.d.ts", + "import": "./dist/esm/providers/huggingface.js" + }, + "./kimi-coding": { + "types": "./dist/esm/providers/kimi-coding.d.ts", + "import": "./dist/esm/providers/kimi-coding.js" + }, + "./meta": { + "types": "./dist/esm/providers/meta.d.ts", + "import": "./dist/esm/providers/meta.js" + }, + "./minimax": { + "types": "./dist/esm/providers/minimax.d.ts", + "import": "./dist/esm/providers/minimax.js" + }, + "./minimax-cn": { + "types": "./dist/esm/providers/minimax-cn.d.ts", + "import": "./dist/esm/providers/minimax-cn.js" + }, + "./mistral": { + "types": "./dist/esm/providers/mistral.d.ts", + "import": "./dist/esm/providers/mistral.js" + }, + "./moonshotai": { + "types": "./dist/esm/providers/moonshotai.d.ts", + "import": "./dist/esm/providers/moonshotai.js" + }, + "./moonshotai-cn": { + "types": "./dist/esm/providers/moonshotai-cn.d.ts", + "import": "./dist/esm/providers/moonshotai-cn.js" + }, + "./nvidia": { + "types": "./dist/esm/providers/nvidia.d.ts", + "import": "./dist/esm/providers/nvidia.js" + }, + "./openai": { + "types": "./dist/esm/providers/openai.d.ts", + "import": "./dist/esm/providers/openai.js" + }, + "./opencode": { + "types": "./dist/esm/providers/opencode.d.ts", + "import": "./dist/esm/providers/opencode.js" + }, + "./opencode-go": { + "types": "./dist/esm/providers/opencode-go.d.ts", + "import": "./dist/esm/providers/opencode-go.js" + }, + "./openrouter": { + "types": "./dist/esm/providers/openrouter.d.ts", + "import": "./dist/esm/providers/openrouter.js" + }, + "./qwen-token-plan": { + "types": "./dist/esm/providers/qwen-token-plan.d.ts", + "import": "./dist/esm/providers/qwen-token-plan.js" + }, + "./qwen-token-plan-cn": { + "types": "./dist/esm/providers/qwen-token-plan-cn.d.ts", + "import": "./dist/esm/providers/qwen-token-plan-cn.js" + }, + "./qwen-token-plan-individual": { + "types": "./dist/esm/providers/qwen-token-plan-individual.d.ts", + "import": "./dist/esm/providers/qwen-token-plan-individual.js" + }, + "./together": { + "types": "./dist/esm/providers/together.d.ts", + "import": "./dist/esm/providers/together.js" + }, + "./vercel-ai-gateway": { + "types": "./dist/esm/providers/vercel-ai-gateway.d.ts", + "import": "./dist/esm/providers/vercel-ai-gateway.js" + }, + "./xai": { + "types": "./dist/esm/providers/xai.d.ts", + "import": "./dist/esm/providers/xai.js" + }, + "./xiaomi": { + "types": "./dist/esm/providers/xiaomi.d.ts", + "import": "./dist/esm/providers/xiaomi.js" + }, + "./xiaomi-token-plan-ams": { + "types": "./dist/esm/providers/xiaomi-token-plan-ams.d.ts", + "import": "./dist/esm/providers/xiaomi-token-plan-ams.js" + }, + "./xiaomi-token-plan-cn": { + "types": "./dist/esm/providers/xiaomi-token-plan-cn.d.ts", + "import": "./dist/esm/providers/xiaomi-token-plan-cn.js" + }, + "./xiaomi-token-plan-sgp": { + "types": "./dist/esm/providers/xiaomi-token-plan-sgp.d.ts", + "import": "./dist/esm/providers/xiaomi-token-plan-sgp.js" + }, + "./zai": { + "types": "./dist/esm/providers/zai.d.ts", + "import": "./dist/esm/providers/zai.js" + }, + "./zai-coding-cn": { + "types": "./dist/esm/providers/zai-coding-cn.d.ts", + "import": "./dist/esm/providers/zai-coding-cn.js" + } + }, + "files": [ + "dist", + "src" + ], + "scripts": { + "build": "vite build", + "clean": "premove ./build ./dist", + "lint:fix": "oxlint src --type-aware --fix", + "test:build": "publint --strict", + "test:oxlint": "oxlint src --type-aware", + "test:coverage": "vitest run --coverage --coverage.include='src/**' --coverage.reporter=text-summary --coverage.reporter=json-summary", + "test:lib": "vitest run", + "test:lib:dev": "pnpm test:lib --watch", + "test:types": "tsc" + }, + "keywords": [ + "ai", + "ai-sdk", + "typescript", + "tanstack", + "models", + "model-catalog", + "pricing", + "context-window" + ], + "devDependencies": { + "@tanstack/ai": "workspace:*", + "@types/node": "^24.10.1", + "@vitest/coverage-v8": "4.1.10", + "vite": "^8.2.1" + } +} diff --git a/packages/ai-models/scripts/catalog.ts b/packages/ai-models/scripts/catalog.ts new file mode 100644 index 0000000000..9e64474985 --- /dev/null +++ b/packages/ai-models/scripts/catalog.ts @@ -0,0 +1,199 @@ +import { BORROW, ONLY } from './known-ids' +import { EXTRA_MODELS, MODEL_OVERRIDES } from './overrides' +import { + inputModalities, + makesText, + modelHints, + reasoningLevelsFrom, + takesBudget, +} from './rules' +import type { ProviderRow, Wire } from './providers' +import type { DevModel } from './rules' +import type { + ModelCompat, + ModelCostRates, + ModelReasoning, + ModelRecord, + ProviderRecord, + WireApi, +} from '../src/types' + +/** The trimmed models.dev catalog (`scripts/models-dev.models.json`). */ +export type DevCatalog = Readonly< + Record> }> +> + +/** A gateway's own model list, turned into models.dev's shape. */ +export type GatewayModels = ReadonlyArray + +/** The inputs of one build. */ +export interface CatalogInputs { + dev: DevCatalog + /** Extra model lists per provider id, for example OpenRouter's own API. */ + gateways?: Readonly> +} + +/** Drop undefined fields, so the generated files stay small. */ +function compact(value: T): T { + return Object.fromEntries( + Object.entries(value).filter(([, field]) => field !== undefined), + ) as T +} + +const mergeCompat = ( + ...parts: ReadonlyArray +): ModelCompat | undefined => { + const merged: ModelCompat = Object.assign({}, ...parts) + return Object.keys(merged).length > 0 ? merged : undefined +} + +/** + * The models.dev context tiers, in pi's shape. A tier price that models.dev + * leaves out is the base price. + */ +function costTiers( + model: DevModel, + base: Omit, +): ModelCostRates['tiers'] { + const tiers = (model.cost?.tiers ?? []).flatMap((tier) => + tier.tier?.type === 'context' && tier.tier.size !== undefined + ? [ + { + inputTokensAbove: tier.tier.size, + input: tier.input ?? base.input, + output: tier.output ?? base.output, + cacheRead: tier.cache_read ?? base.cacheRead, + cacheWrite: tier.cache_write ?? base.cacheWrite, + }, + ] + : [], + ) + return tiers.length > 0 ? tiers : undefined +} + +/** Turn one models.dev model into a catalog record for `row`. */ +export function toRecord( + row: ProviderRow, + id: string, + model: DevModel, + sourceId: string, + borrowedFrom?: string, +): ModelRecord { + const wire: Wire = row.wire?.({ + id: sourceId, + ...(model.provider?.npm ? { npm: model.provider.npm } : {}), + }) ?? { api: row.api, baseUrl: row.baseUrl } + const reasoning: ModelReasoning = + model.reasoning === true + ? { + levels: reasoningLevelsFrom(model.reasoning_options), + budget: takesBudget(model.reasoning_options), + } + : false + const compat = mergeCompat( + row.compat, + row.modelCompat?.(id, wire), + modelHints(model, wire, row.effortByModel === true), + ) + const cost = { + input: model.cost?.input ?? 0, + output: model.cost?.output ?? 0, + cacheRead: model.cost?.cache_read ?? 0, + cacheWrite: model.cost?.cache_write ?? 0, + } + return compact({ + id, + provider: row.id, + name: model.name ?? id, + api: wire.api, + baseUrl: wire.baseUrl, + input: inputModalities(model.modalities?.input), + reasoning, + cost: compact({ ...cost, tiers: costTiers(model, cost) }), + contextWindow: model.limit?.context ?? 0, + maxTokens: model.limit?.output ?? 0, + headers: row.headers, + compat, + borrowedFrom, + }) +} + +/** Find `provider/model` in the catalog. Model ids can hold `/`. */ +function lookup(dev: DevCatalog, source: string): DevModel | undefined { + const slash = source.indexOf('/') + return dev[source.slice(0, slash)]?.models[source.slice(slash + 1)] +} + +/** Every model of one provider, sorted by id. */ +export function buildModels( + row: ProviderRow, + inputs: CatalogInputs, +): ReadonlyArray { + const records = new Map() + const only = ONLY[row.id] + const allowed = (id: string) => !only || only.includes(id) + + for (const source of row.sources) + for (const [sourceId, model] of Object.entries( + inputs.dev[source]?.models ?? {}, + )) { + if ( + row.exclude?.({ + id: sourceId, + ...(model.provider?.npm ? { npm: model.provider.npm } : {}), + }) + ) + continue + const id = row.modelId?.(sourceId) ?? sourceId + if (records.has(id) || !allowed(id) || !makesText(model)) continue + records.set(id, toRecord(row, id, model, sourceId)) + } + + // The gateway's own list has models models.dev does not (for example + // OpenRouter's `:batch` variants). + for (const model of inputs.gateways?.[row.id] ?? []) { + if (records.has(model.id) || !makesText(model)) continue + records.set(model.id, toRecord(row, model.id, model, model.id)) + } + + for (const [id, source] of Object.entries(BORROW[row.id] ?? {})) { + if (records.has(id)) continue + const model = lookup(inputs.dev, source) + if (model) records.set(id, toRecord(row, id, model, id, source)) + } + + for (const extra of EXTRA_MODELS[row.id] ?? []) { + if (records.has(extra.id)) continue + const wire: Wire = { api: row.api, baseUrl: row.baseUrl } + const compat = mergeCompat(row.compat, row.modelCompat?.(extra.id, wire)) + records.set(extra.id, { + provider: row.id, + ...wire, + ...(row.headers ? { headers: row.headers } : {}), + ...(compat ? { compat } : {}), + ...extra, + }) + } + + for (const [id, override] of Object.entries(MODEL_OVERRIDES[row.id] ?? {})) { + const record = records.get(id) + if (record) records.set(id, { ...record, ...override }) + } + + return [...records.values()].sort((a, b) => a.id.localeCompare(b.id)) +} + +/** The provider record of a row, with the wires its models use. */ +export function buildProvider( + row: ProviderRow, + models: ReadonlyArray, +): ProviderRecord { + const apis = [...new Set([row.api, ...models.map((m) => m.api)])] + return { + id: row.id, + name: row.name, + baseUrl: row.baseUrl, + apis: apis.sort(), + env: row.env, + } +} diff --git a/packages/ai-models/scripts/known-ids.ts b/packages/ai-models/scripts/known-ids.ts new file mode 100644 index 0000000000..c55d56a317 --- /dev/null +++ b/packages/ai-models/scripts/known-ids.ts @@ -0,0 +1,272 @@ +// Model ids that the generator cannot find on its own. It compares with the +// catalog of pi 0.87.1. Keep it by hand: +// add an id here when a provider drops it from models.dev but still serves it. + +/** A model id at a provider, and the models.dev model to take its data from. */ +export const BORROW: Readonly< + Record>> +> = { + 'ant-ling': { + 'Ling-2.6-1T': 'novita-ai/inclusionai/ling-2.6-1t', + 'Ling-2.6-flash': 'novita-ai/inclusionai/ling-2.6-flash', + 'Ring-2.6-1T': 'novita-ai/inclusionai/ring-2.6-1t', + }, + 'azure-openai-responses': { + 'gpt-4': 'openai/gpt-4', + 'gpt-4o-2024-05-13': 'openai/gpt-4o-2024-05-13', + 'gpt-4o-2024-08-06': 'openai/gpt-4o-2024-08-06', + 'gpt-4o-2024-11-20': 'openai/gpt-4o-2024-11-20', + 'gpt-5-chat-latest': 'jiekou/gpt-5-chat-latest', + 'gpt-5.2-chat-latest': 'openai/gpt-5.2-chat-latest', + 'gpt-5.2-pro': 'openai/gpt-5.2-pro', + 'gpt-5.3-chat-latest': 'openai/gpt-5.3-chat-latest', + 'gpt-5.3-codex-spark': 'openai/gpt-5.3-codex-spark', + 'gpt-5.5-pro': 'openai/gpt-5.5-pro', + 'gpt-realtime-2.1': 'openai/gpt-realtime-2.1', + 'o1-pro': 'openai/o1-pro', + 'o3-pro': 'openai/o3-pro', + }, + 'cloudflare-ai-gateway': { + 'workers-ai/@cf/deepseek-ai/deepseek-v4-flash-0731': + 'cloudflare-workers-ai/@cf/deepseek-ai/deepseek-v4-flash-0731', + 'workers-ai/@cf/deepseek-ai/deepseek-v4-pro-0813': + 'cloudflare-workers-ai/@cf/deepseek-ai/deepseek-v4-pro-0813', + 'workers-ai/@cf/google/gemma-4-26b-a4b-it': + 'cloudflare-workers-ai/@cf/google/gemma-4-26b-a4b-it', + 'workers-ai/@cf/ibm-granite/granite-4.0-h-micro': + 'cloudflare-workers-ai/@cf/ibm-granite/granite-4.0-h-micro', + 'workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast': + 'cloudflare-workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast', + 'workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct': + 'cloudflare-workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct', + 'workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct': + 'cloudflare-workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct', + 'workers-ai/@cf/moonshotai/kimi-k2.6': + 'cloudflare-workers-ai/@cf/moonshotai/kimi-k2.6', + 'workers-ai/@cf/moonshotai/kimi-k2.7-code': + 'cloudflare-workers-ai/@cf/moonshotai/kimi-k2.7-code', + 'workers-ai/@cf/nvidia/nemotron-3-120b-a12b': + 'cloudflare-workers-ai/@cf/nvidia/nemotron-3-120b-a12b', + 'workers-ai/@cf/openai/gpt-oss-120b': + 'cloudflare-workers-ai/@cf/openai/gpt-oss-120b', + 'workers-ai/@cf/openai/gpt-oss-20b': + 'cloudflare-workers-ai/@cf/openai/gpt-oss-20b', + 'workers-ai/@cf/qwen/qwen3-30b-a3b-fp8': + 'cloudflare-workers-ai/@cf/qwen/qwen3-30b-a3b-fp8', + 'workers-ai/@cf/qwen/qwen3.8-27b': + 'cloudflare-workers-ai/@cf/qwen/qwen3.8-27b', + 'workers-ai/@cf/zai-org/glm-4.7-flash': + 'cloudflare-workers-ai/@cf/zai-org/glm-4.7-flash', + 'workers-ai/@cf/zai-org/glm-5.2': + 'cloudflare-workers-ai/@cf/zai-org/glm-5.2', + 'workers-ai/@cf/zai-org/glm-5.3': + 'cloudflare-workers-ai/@cf/zai-org/glm-5.3', + 'workers-ai/@cf/zai-org/glm-5.3-flash': + 'cloudflare-workers-ai/@cf/zai-org/glm-5.3-flash', + }, + fireworks: { + 'accounts/fireworks/models/deepseek-v4-flash-0731': + 'deepinfra/deepseek-ai/DeepSeek-V4-Flash-0731', + 'accounts/fireworks/models/deepseek-v4-flash-vision-exp': + 'deepseek/deepseek-v4-flash-vision-exp', + 'accounts/fireworks/models/deepseek-v4-pro': 'deepseek/deepseek-v4-pro', + 'accounts/fireworks/models/deepseek-v4-pro-0813': + 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + 'accounts/fireworks/models/kimi-k2p6': 'moonshotai/kimi-k2.6', + 'accounts/fireworks/models/kimi-k2p7-code': 'moonshotai/kimi-k2.7-code', + 'accounts/fireworks/models/minimax-m2p7': 'minimax/MiniMax-M2.7', + 'accounts/fireworks/models/muse-glimmer-30b': + 'empiriolabs/muse-glimmer-30b', + 'accounts/fireworks/models/qwen3p7-plus': 'alibaba/qwen3.7-plus', + 'accounts/fireworks/routers/deepseek-pro-latest': + 'kilo/~deepseek/deepseek-pro-latest', + 'accounts/fireworks/models/glm-5p2': 'zai/glm-5.2', + 'accounts/fireworks/routers/glm-5p2-fast': 'baseten/zai-org/GLM-5.2-Fast', + }, + mistral: { + 'mistral-medium-3.5': 'nano-gpt/mistralai/mistral-medium-3.5', + }, + openai: { + 'gpt-5-chat-latest': 'jiekou/gpt-5-chat-latest', + }, + 'opencode-go': { + 'glm-5.1': 'zai/glm-5.1', + }, + openrouter: { + 'anthropic/claude-3-haiku': 'vercel/anthropic/claude-3-haiku', + auto: 'kilo/openrouter/auto', + 'inclusionai/ling-3.0-flash-fin:free': + 'kilo/inclusionai/ling-3.0-flash-fin', + 'inclusionai/ling-3.0-flash-vl:free': + 'nano-gpt/inclusionai/ling-3.0-flash-vl', + 'nex-agi/nex-n2.5-mini:free': 'kilo/nex-agi/nex-n2.5-mini', + 'nex-agi/nex-n2.5-pro:free': 'kilo/nex-agi/nex-n2.5-pro', + }, + 'qwen-token-plan': { + 'MiniMax-M2.5': 'minimax/MiniMax-M2.5', + 'deepseek-v3.2': 'deepinfra/deepseek-ai/DeepSeek-V3.2', + 'deepseek-v4-flash': 'deepseek/deepseek-v4-flash', + 'deepseek-v4-pro': 'deepseek/deepseek-v4-pro', + 'deepseek-v4-pro-0813': 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + 'deepseek-v4.1-flash': 'deepinfra/deepseek-ai/DeepSeek-V4.1-Flash', + 'glm-5': 'zai/glm-5', + 'glm-5.1': 'zai/glm-5.1', + 'glm-5.3': 'zai/glm-5.3', + 'kimi-k2.5': 'deepinfra/moonshotai/Kimi-K2.5', + 'kimi-k2.6': 'moonshotai/kimi-k2.6', + 'kimi-k2.7-code': 'moonshotai/kimi-k2.7-code', + }, + 'qwen-token-plan-cn': { + 'deepseek-v3.2': 'deepinfra/deepseek-ai/DeepSeek-V3.2', + 'deepseek-v4-flash-0731': 'deepinfra/deepseek-ai/DeepSeek-V4-Flash-0731', + 'deepseek-v4-pro-0813': 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + 'kimi-k2.7-code': 'moonshotai/kimi-k2.7-code', + }, + 'qwen-token-plan-individual': { + 'deepseek-v4-pro': 'deepseek/deepseek-v4-pro', + 'deepseek-v4-pro-0813': 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + }, + together: { + 'moonshotai/Kimi-K2.6': 'moonshotai/kimi-k2.6', + 'moonshotai/Kimi-K2.7-Code': 'moonshotai/kimi-k2.7-code', + }, + 'vercel-ai-gateway': { + 'inclusionai/ling-3.0-flash-fin-free': + 'kilo/inclusionai/ling-3.0-flash-fin', + 'inclusionai/ling-3.0-flash-vl-free': + 'nano-gpt/inclusionai/ling-3.0-flash-vl', + }, + zai: { + 'glm-5.2-highspeed': 'zai-coding-plan/glm-5.2-highspeed', + 'glm-5.3-highspeed': 'zhipuai-coding-plan/glm-5.3-highspeed', + }, +} + +/** + * Plan providers that share a models.dev list with the full API but serve + * only some of its models. Only these ids are in the catalog. + */ +export const ONLY: Readonly>> = { + 'qwen-token-plan': [ + 'MiniMax-M2.5', + 'deepseek-v3.2', + 'deepseek-v4-flash', + 'deepseek-v4-flash-0731', + 'deepseek-v4-pro', + 'deepseek-v4-pro-0813', + 'deepseek-v4.1-flash', + 'glm-5', + 'glm-5.1', + 'glm-5.2', + 'glm-5.3', + 'kimi-k2.5', + 'kimi-k2.6', + 'kimi-k2.7-code', + 'qwen3.6-flash', + 'qwen3.6-plus', + 'qwen3.7-max', + 'qwen3.7-plus', + 'qwen3.8-flash', + 'qwen3.8-max', + ], + 'qwen-token-plan-cn': [ + 'MiniMax-M2.5', + 'deepseek-v3.2', + 'deepseek-v4-flash', + 'deepseek-v4-flash-0731', + 'deepseek-v4-pro', + 'deepseek-v4-pro-0813', + 'deepseek-v4.1-flash', + 'glm-5', + 'glm-5.1', + 'glm-5.2', + 'glm-5.3', + 'kimi-k2.5', + 'kimi-k2.6', + 'kimi-k2.7-code', + 'qwen3.6-flash', + 'qwen3.6-plus', + 'qwen3.7-max', + 'qwen3.7-plus', + 'qwen3.8-flash', + 'qwen3.8-max', + ], + 'qwen-token-plan-individual': [ + 'deepseek-v4-flash-0731', + 'deepseek-v4-pro', + 'deepseek-v4-pro-0813', + 'glm-5.2', + 'qwen3.6-flash', + 'qwen3.7-max', + 'qwen3.7-plus', + 'qwen3.8-flash', + 'qwen3.8-max', + ], + 'xiaomi-token-plan-ams': [ + 'mimo-v2.5', + 'mimo-v2.5-pro', + 'mimo-v2.6-flash', + 'mimo-v2.6-pro', + ], + 'xiaomi-token-plan-cn': [ + 'mimo-v2.5', + 'mimo-v2.5-pro', + 'mimo-v2.6-flash', + 'mimo-v2.6-pro', + ], + 'xiaomi-token-plan-sgp': [ + 'mimo-v2.5', + 'mimo-v2.5-pro', + 'mimo-v2.6-flash', + 'mimo-v2.6-pro', + ], +} + +/** Fireworks models on its Anthropic Messages endpoint. The rest use Chat Completions. */ +export const FIREWORKS_ANTHROPIC_WIRE: ReadonlyArray = [ + 'accounts/fireworks/models/deepseek-v4-flash-0731', + 'accounts/fireworks/models/deepseek-v4-flash-vision-exp', + 'accounts/fireworks/models/deepseek-v4-pro', + 'accounts/fireworks/models/deepseek-v4-pro-0813', + 'accounts/fireworks/models/deepseek-v4p1-flash', + 'accounts/fireworks/models/gpt-oss-120b', + 'accounts/fireworks/models/inkling', + 'accounts/fireworks/models/kimi-k2p6', + 'accounts/fireworks/models/kimi-k2p7-code', + 'accounts/fireworks/models/minimax-m2p7', + 'accounts/fireworks/models/minimax-m3', + 'accounts/fireworks/models/muse-glimmer-30b', + 'accounts/fireworks/models/nemotron-3-ultra-nvfp4', + 'accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b', + 'accounts/fireworks/models/qwen3p7-plus', + 'accounts/fireworks/models/qwen3p8-2p4t-a95b', + 'accounts/fireworks/models/qwen3p8-max', + 'accounts/fireworks/routers/deepseek-flash-latest', + 'accounts/fireworks/routers/deepseek-pro-latest', + 'accounts/fireworks/routers/kimi-fast-latest', + 'accounts/fireworks/routers/kimi-latest', + 'accounts/fireworks/routers/minimax-latest', + 'accounts/fireworks/routers/qwen-max-latest', +] + +/** + * Fireworks models on the Anthropic endpoint that think with a budget (pi + * 0.87.1). The others think adaptively: pi has `effort` levels for them, + * and models.dev does not have them for all. + */ +export const FIREWORKS_BUDGET_THINKING: ReadonlyArray = [ + 'accounts/fireworks/models/inkling', + 'accounts/fireworks/models/kimi-k2p6', + 'accounts/fireworks/models/kimi-k2p7-code', + 'accounts/fireworks/models/nemotron-3-ultra-nvfp4', + 'accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b', + 'accounts/fireworks/routers/qwen-max-latest', +] + +/** The models with mid-conversation effort, by provider (pi 0.87.1 `supportsMidConvoEffort`). */ +export const MID_CONVERSATION_EFFORT: Readonly< + Record> +> = { + anthropic: ['claude-fable-5-1', 'claude-opus-5', 'claude-opus-5-5'], + openrouter: ['anthropic/claude-fable-5.1', 'anthropic/claude-opus-5.5'], +} diff --git a/packages/ai-models/scripts/overrides.ts b/packages/ai-models/scripts/overrides.ts new file mode 100644 index 0000000000..4af7ded52d --- /dev/null +++ b/packages/ai-models/scripts/overrides.ts @@ -0,0 +1,94 @@ +import { DEFAULT_LEVELS } from './rules' +import type { ModelReasoning, ModelRecord, ReasoningLevel } from '../src/types' + +/** A model record without the fields its provider row fills in. */ +export type ExtraModel = Omit & + Partial> + +/** + * Models that no source has, written by hand. Values from the provider's + * price page (as pi 0.87.1 lists them). + */ +export const EXTRA_MODELS: Readonly>> = + { + mistral: [ + { + id: 'magistral-small', + name: 'Magistral Small', + input: ['text'], + reasoning: { levels: DEFAULT_LEVELS, budget: false }, + cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + ], + openrouter: [ + { + id: 'openrouter/auto-beta', + name: 'Auto Router (Beta)', + input: ['text', 'image'], + reasoning: { levels: DEFAULT_LEVELS, budget: false }, + // The router picks a model per call, so the price is not known ahead. + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 4096, + }, + ], + } + +/** Effort levels: `off` when given, and the named levels as their own name. */ +function effort( + budget: boolean, + off: string | null, + ...levels: Array +): ModelReasoning { + return { + levels: { + ...(off === null ? {} : { off }), + ...Object.fromEntries(levels.map((level) => [level, level])), + }, + budget, + } +} + +/** + * Corrections for single models, merged over the generated record. Keep a + * comment on each one that says why. + */ +export const MODEL_OVERRIDES: Readonly< + Record>>> +> = { + // Fireworks' own effort levels on its Anthropic endpoint (pi 0.87.1). + // models.dev has no levels for these, and the record borrows the levels + // of the same model at another provider. + fireworks: { + 'accounts/fireworks/models/deepseek-v4-flash-0731': { + reasoning: effort(false, 'none', 'low', 'high', 'max'), + }, + 'accounts/fireworks/models/deepseek-v4-pro': { + reasoning: effort(false, 'none', 'high', 'max'), + }, + 'accounts/fireworks/models/deepseek-v4-pro-0813': { + reasoning: effort(false, 'none', 'low', 'high', 'max'), + }, + 'accounts/fireworks/models/muse-glimmer-30b': { + reasoning: effort(false, null, 'low', 'medium', 'high', 'xhigh'), + }, + 'accounts/fireworks/models/qwen3p7-plus': { + reasoning: effort(true, 'none', 'low', 'medium', 'high'), + }, + 'accounts/fireworks/models/qwen3p8-max': { + reasoning: effort(false, 'none', 'low', 'medium', 'xhigh'), + }, + 'accounts/fireworks/routers/deepseek-pro-latest': { + reasoning: effort(false, 'none', 'high', 'max'), + }, + }, + // models.dev lists no reasoning for it at Vercel. Vercel's own model list + // tags it `reasoning`, and Google, OpenRouter, and pi 0.87.1 list it. + 'vercel-ai-gateway': { + 'google/gemma-4-31b-it': { + reasoning: { levels: DEFAULT_LEVELS, budget: false }, + }, + }, +} diff --git a/packages/ai-models/scripts/providers.ts b/packages/ai-models/scripts/providers.ts new file mode 100644 index 0000000000..e82f62713c --- /dev/null +++ b/packages/ai-models/scripts/providers.ts @@ -0,0 +1,628 @@ +import { + FIREWORKS_ANTHROPIC_WIRE, + FIREWORKS_BUDGET_THINKING, + MID_CONVERSATION_EFFORT, +} from './known-ids' +import type { ModelCompat, WireApi } from '../src/types' + +/** Where one model is served: its wire protocol and endpoint. */ +export interface Wire { + api: WireApi + baseUrl: string +} + +/** What a provider row can read from a models.dev model. */ +export interface SourceModel { + id: string + /** The AI SDK package models.dev lists for this model, when it differs from the provider's. */ + npm?: string +} + +/** + * One provider, by hand. The quirk rules follow pi's `detectCompat()` + * (`pi-ai/dist/api/openai-completions.js`) and the values pi sets on every + * model of the provider. Per-model hints come from models.dev (see + * `rules.ts`), and the model value wins. + */ +export interface ProviderRow { + id: string + name: string + /** models.dev provider ids to read models from. The first one wins on a clash. */ + sources: ReadonlyArray + baseUrl: string + env: ReadonlyArray> + /** Wire and endpoint per model. Default: `api` at `baseUrl`. */ + api: WireApi + wire?: (model: SourceModel) => Wire + /** The model id the catalog uses, from the models.dev id. Default: the same. */ + modelId?: (sourceId: string) => string + /** `true`: leave this models.dev model out, for example one on another wire. */ + exclude?: (model: SourceModel) => boolean + /** Quirks of every model of this provider. */ + compat?: ModelCompat + /** Quirks of some models of this provider, by model id. */ + modelCompat?: (id: string, wire: Wire) => ModelCompat | undefined + /** `true`: `supportsReasoningEffort` follows each model's `effort` option. */ + effortByModel?: boolean + headers?: Readonly> +} + +const completions = (baseUrl: string): Wire => ({ + api: 'openai-completions', + baseUrl, +}) + +/** Chat Completions rules of the "non-standard" providers in pi's detectCompat. */ +const NON_STANDARD: ModelCompat = { + supportsStore: false, + supportsDeveloperRole: false, +} + +/** A DeepSeek-family model on a gateway sends thinking the DeepSeek way. */ +const deepseekFamily = (id: string): ModelCompat | undefined => + /deepseek/i.test(id) + ? { + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + } + : undefined + +/** OpenCode serves each model on the wire of the SDK models.dev lists. */ +const opencodeWire = + (root: string) => + (model: SourceModel): Wire => { + if (model.npm === '@ai-sdk/anthropic') + return { api: 'anthropic-messages', baseUrl: root } + if (model.npm === '@ai-sdk/google') + return { api: 'google-generative-ai', baseUrl: `${root}/v1` } + if (model.npm === '@ai-sdk/openai') + return { api: 'openai-responses', baseUrl: `${root}/v1` } + return completions(`${root}/v1`) + } + +const opencodeCompat = (id: string, wire: Wire): ModelCompat | undefined => { + if (wire.api === 'openai-completions') + return { + ...NON_STANDARD, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + ...deepseekFamily(id), + } + if (wire.api === 'openai-responses') + return { sessionAffinityFormat: 'openai-nosession' } + return undefined +} + +const CLOUDFLARE_GATEWAY = + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}' + +export const PROVIDERS: ReadonlyArray = [ + { + id: 'amazon-bedrock', + name: 'Amazon Bedrock', + sources: ['amazon-bedrock'], + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + api: 'bedrock-converse-stream', + // The `eu.` cross-region profiles run in eu-central-1. + wire: (model) => ({ + api: 'bedrock-converse-stream', + baseUrl: model.id.startsWith('eu.') + ? 'https://bedrock-runtime.eu-central-1.amazonaws.com' + : 'https://bedrock-runtime.us-east-1.amazonaws.com', + }), + env: [ + ['AWS_PROFILE'], + ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY'], + ['AWS_BEARER_TOKEN_BEDROCK'], + ['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'], + ['AWS_CONTAINER_CREDENTIALS_FULL_URI'], + ['AWS_WEB_IDENTITY_TOKEN_FILE'], + ], + }, + { + id: 'ant-ling', + name: 'Ant Ling', + sources: [], + baseUrl: 'https://api.ant-ling.com/v1', + api: 'openai-completions', + env: [['ANT_LING_API_KEY']], + compat: { + ...NON_STANDARD, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'ant-ling', + supportsStrictMode: true, + supportsLongCacheRetention: false, + }, + }, + { + id: 'anthropic', + name: 'Anthropic', + sources: ['anthropic'], + baseUrl: 'https://api.anthropic.com', + api: 'anthropic-messages', + env: [ + ['ANTHROPIC_API_KEY'], + ['ANTHROPIC_OAUTH_TOKEN'], + ['ANTHROPIC_AUTH_TOKEN'], + ], + compat: { supportsStrictTools: true }, + modelCompat: (id) => + MID_CONVERSATION_EFFORT.anthropic?.includes(id) + ? { supportsMidConvoEffort: true } + : undefined, + }, + { + id: 'azure-openai-responses', + name: 'Azure OpenAI', + sources: ['azure'], + // Each Azure resource has its own endpoint. + baseUrl: '', + api: 'azure-openai-responses', + // A model with its own SDK (Claude, and the Foundry models) is not on + // the Azure OpenAI wire. + exclude: (model) => model.npm !== undefined, + env: [['AZURE_OPENAI_API_KEY']], + }, + { + id: 'baseten', + name: 'Baseten', + sources: ['baseten'], + baseUrl: 'https://inference.baseten.co/v1', + api: 'openai-completions', + env: [['BASETEN_API_KEY']], + effortByModel: true, + compat: { + ...NON_STANDARD, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + }, + }, + { + id: 'cerebras', + name: 'Cerebras', + sources: ['cerebras'], + baseUrl: 'https://api.cerebras.ai/v1', + api: 'openai-completions', + env: [['CEREBRAS_API_KEY']], + compat: NON_STANDARD, + }, + { + id: 'cloudflare-ai-gateway', + name: 'Cloudflare AI Gateway', + sources: ['cloudflare-ai-gateway'], + baseUrl: `${CLOUDFLARE_GATEWAY}/compat`, + api: 'openai-completions', + env: [['CLOUDFLARE_API_KEY']], + // Claude and OpenAI models have their own routes, and pi drops the + // vendor part of their id. Every other model goes through `/compat`. + modelId: (id) => id.replace(/^(anthropic|openai)\//, ''), + wire: (model) => { + if (model.id.startsWith('anthropic/')) + return { + api: 'anthropic-messages', + baseUrl: `${CLOUDFLARE_GATEWAY}/anthropic`, + } + if (model.id.startsWith('openai/')) + return { + api: 'openai-responses', + baseUrl: `${CLOUDFLARE_GATEWAY}/openai`, + } + return completions(`${CLOUDFLARE_GATEWAY}/compat`) + }, + compat: { sendSessionAffinityHeaders: true }, + modelCompat: (id, wire) => + wire.api === 'openai-completions' + ? { + ...NON_STANDARD, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + ...deepseekFamily(id), + } + : wire.api === 'openai-responses' + ? { supportsStrictMode: true, sendSessionAffinityHeaders: false } + : undefined, + }, + { + id: 'cloudflare-workers-ai', + name: 'Cloudflare Workers AI', + sources: ['cloudflare-workers-ai'], + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + api: 'openai-completions', + env: [['CLOUDFLARE_API_KEY']], + compat: { + ...NON_STANDARD, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + modelCompat: deepseekFamily, + }, + { + id: 'deepseek', + name: 'DeepSeek', + sources: ['deepseek'], + baseUrl: 'https://api.deepseek.com', + api: 'openai-completions', + env: [['DEEPSEEK_API_KEY']], + compat: { + ...NON_STANDARD, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + supportsStrictMode: true, + }, + }, + { + id: 'fireworks', + name: 'Fireworks AI', + sources: ['fireworks-ai'], + baseUrl: 'https://api.fireworks.ai/inference/v1', + api: 'openai-completions', + env: [['FIREWORKS_API_KEY']], + wire: (model) => + FIREWORKS_ANTHROPIC_WIRE.includes(model.id) + ? { + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + } + : completions('https://api.fireworks.ai/inference/v1'), + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + }, + modelCompat: (id, wire) => + wire.api === 'anthropic-messages' + ? { + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + ...(!FIREWORKS_BUDGET_THINKING.includes(id) && { + forceAdaptiveThinking: true, + }), + } + : { ...NON_STANDARD, supportsStrictMode: true, ...deepseekFamily(id) }, + }, + { + id: 'google', + name: 'Google', + sources: ['google'], + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + api: 'google-generative-ai', + env: [['GEMINI_API_KEY']], + }, + { + id: 'google-vertex', + name: 'Google Vertex AI', + sources: ['google-vertex'], + baseUrl: 'https://{location}-aiplatform.googleapis.com', + api: 'google-vertex', + // Claude on Vertex speaks the Anthropic Messages wire, which the Gemini + // adapter cannot call. pi lists no Claude models on Vertex either. + exclude: (model) => model.id.startsWith('claude-'), + // An API key, or Application Default Credentials with a project and a location. + env: [ + ['GOOGLE_CLOUD_API_KEY'], + [ + 'GOOGLE_APPLICATION_CREDENTIALS', + 'GOOGLE_CLOUD_PROJECT', + 'GOOGLE_CLOUD_LOCATION', + ], + [ + 'GOOGLE_APPLICATION_CREDENTIALS', + 'GCLOUD_PROJECT', + 'GOOGLE_CLOUD_LOCATION', + ], + ], + }, + { + id: 'groq', + name: 'Groq', + sources: ['groq'], + baseUrl: 'https://api.groq.com/openai/v1', + api: 'openai-completions', + env: [['GROQ_API_KEY']], + compat: { supportsStrictMode: true }, + }, + { + id: 'huggingface', + name: 'Hugging Face', + sources: ['huggingface'], + baseUrl: 'https://router.huggingface.co/v1', + api: 'openai-completions', + env: [['HF_TOKEN']], + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'kimi-coding', + name: 'Kimi For Coding', + sources: ['kimi-code-plan-global', 'kimi-code-plan-cn'], + baseUrl: 'https://api.kimi.com/coding', + api: 'anthropic-messages', + env: [['KIMI_API_KEY']], + compat: { forceAdaptiveThinking: true }, + }, + { + id: 'meta', + name: 'Meta', + sources: ['meta'], + baseUrl: 'https://api.meta.ai/v1', + api: 'openai-responses', + env: [['META_API_KEY']], + }, + { + id: 'minimax', + name: 'MiniMax', + sources: ['minimax'], + baseUrl: 'https://api.minimax.io/anthropic', + api: 'anthropic-messages', + env: [['MINIMAX_API_KEY']], + }, + { + id: 'minimax-cn', + name: 'MiniMax (China)', + sources: ['minimax-cn'], + baseUrl: 'https://api.minimaxi.com/anthropic', + api: 'anthropic-messages', + env: [['MINIMAX_CN_API_KEY']], + }, + { + id: 'mistral', + name: 'Mistral', + sources: ['mistral'], + baseUrl: 'https://api.mistral.ai', + api: 'mistral-conversations', + env: [['MISTRAL_API_KEY']], + }, + ...(['moonshotai', 'moonshotai-cn'] as const).map( + (id): ProviderRow => ({ + id, + name: id === 'moonshotai' ? 'Moonshot AI' : 'Moonshot AI (China)', + sources: [id], + baseUrl: + id === 'moonshotai' + ? 'https://api.moonshot.ai/v1' + : 'https://api.moonshot.cn/v1', + api: 'openai-completions', + env: [['MOONSHOT_API_KEY']], + effortByModel: true, + compat: { + ...NON_STANDARD, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + }, + }), + ), + { + id: 'nvidia', + name: 'NVIDIA', + sources: ['nvidia'], + baseUrl: 'https://integrate.api.nvidia.com/v1', + api: 'openai-completions', + env: [['NVIDIA_API_KEY']], + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + ...NON_STANDARD, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'openai', + name: 'OpenAI', + sources: ['openai'], + baseUrl: 'https://api.openai.com/v1', + api: 'openai-responses', + env: [['OPENAI_API_KEY']], + compat: { supportsStrictMode: true }, + }, + { + id: 'opencode', + name: 'OpenCode Zen', + sources: ['opencode'], + baseUrl: 'https://opencode.ai/zen/v1', + api: 'openai-completions', + env: [['OPENCODE_API_KEY']], + wire: opencodeWire('https://opencode.ai/zen'), + modelCompat: opencodeCompat, + }, + { + id: 'opencode-go', + name: 'OpenCode Go', + sources: ['opencode-go'], + baseUrl: 'https://opencode.ai/zen/go/v1', + api: 'openai-completions', + env: [['OPENCODE_API_KEY']], + wire: opencodeWire('https://opencode.ai/zen/go'), + modelCompat: opencodeCompat, + }, + { + id: 'openrouter', + name: 'OpenRouter', + sources: ['openrouter'], + baseUrl: 'https://openrouter.ai/api/v1', + api: 'openai-completions', + env: [['OPENROUTER_API_KEY']], + // Claude goes through OpenRouter's Anthropic Messages endpoint. Its + // `:batch` variants are Chat Completions only. + wire: (model) => + model.id.startsWith('anthropic/') && !model.id.endsWith(':batch') + ? { api: 'anthropic-messages', baseUrl: 'https://openrouter.ai/api' } + : completions('https://openrouter.ai/api/v1'), + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + }, + modelCompat: (id) => ({ + supportsDeveloperRole: /^(anthropic|openai)\//.test(id), + ...(id.startsWith('anthropic/') + ? { cacheControlFormat: 'anthropic' as const } + : {}), + ...(MID_CONVERSATION_EFFORT.openrouter?.includes(id) + ? { supportsMidConvoEffort: true } + : {}), + }), + }, + ...( + [ + [ + 'qwen-token-plan', + 'Qwen Token Plan', + 'alibaba', + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + 'QWEN_TOKEN_PLAN_API_KEY', + ], + [ + 'qwen-token-plan-cn', + 'Qwen Token Plan (China)', + 'alibaba-cn', + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + 'QWEN_TOKEN_PLAN_CN_API_KEY', + ], + [ + 'qwen-token-plan-individual', + 'Qwen Token Plan (Individual)', + 'alibaba', + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + 'QWEN_TOKEN_PLAN_API_KEY', + ], + ] as const + ).map( + ([id, name, source, baseUrl, key]): ProviderRow => ({ + id, + name, + sources: [source], + baseUrl, + api: 'openai-completions', + env: [[key]], + effortByModel: true, + compat: { + ...NON_STANDARD, + supportsStrictMode: true, + thinkingFormat: 'qwen', + }, + }), + ), + { + id: 'together', + name: 'Together AI', + sources: ['togetherai'], + baseUrl: 'https://api.together.ai/v1', + api: 'openai-completions', + env: [['TOGETHER_API_KEY']], + compat: { + ...NON_STANDARD, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'vercel-ai-gateway', + name: 'Vercel AI Gateway', + sources: ['vercel'], + baseUrl: 'https://ai-gateway.vercel.sh', + api: 'anthropic-messages', + env: [['AI_GATEWAY_API_KEY']], + compat: { allowEmptySignature: true }, + }, + { + id: 'xai', + name: 'xAI', + sources: ['xai'], + baseUrl: 'https://api.x.ai/v1', + api: 'openai-responses', + env: [['XAI_API_KEY']], + compat: { supportsLongCacheRetention: false }, + }, + ...( + [ + [ + 'xiaomi', + 'Xiaomi MiMo', + 'https://api.xiaomimimo.com/v1', + 'XIAOMI_API_KEY', + ], + [ + 'xiaomi-token-plan-ams', + 'Xiaomi MiMo Token Plan (Amsterdam)', + 'https://token-plan-ams.xiaomimimo.com/v1', + 'XIAOMI_TOKEN_PLAN_AMS_API_KEY', + ], + [ + 'xiaomi-token-plan-cn', + 'Xiaomi MiMo Token Plan (China)', + 'https://token-plan-cn.xiaomimimo.com/v1', + 'XIAOMI_TOKEN_PLAN_CN_API_KEY', + ], + [ + 'xiaomi-token-plan-sgp', + 'Xiaomi MiMo Token Plan (Singapore)', + 'https://token-plan-sgp.xiaomimimo.com/v1', + 'XIAOMI_TOKEN_PLAN_SGP_API_KEY', + ], + ] as const + ).map( + ([id, name, baseUrl, key]): ProviderRow => ({ + id, + name, + sources: ['xiaomi'], + baseUrl, + api: 'openai-completions', + env: [[key]], + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }), + ), + ...( + [ + [ + 'zai', + 'Z.AI', + ['zai'], + 'https://api.z.ai/api/coding/paas/v4', + 'ZAI_API_KEY', + ], + [ + 'zai-coding-cn', + 'Zhipu AI Coding Plan', + ['zhipuai-coding-plan', 'zai-coding-plan'], + 'https://open.bigmodel.cn/api/coding/paas/v4', + 'ZAI_CODING_CN_API_KEY', + ], + ] as const + ).map( + ([id, name, sources, baseUrl, key]): ProviderRow => ({ + id, + name, + sources, + baseUrl, + api: 'openai-completions', + env: [[key]], + effortByModel: true, + compat: { + ...NON_STANDARD, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + }, + }), + ), +] diff --git a/packages/ai-models/scripts/rules.ts b/packages/ai-models/scripts/rules.ts new file mode 100644 index 0000000000..dd5df80c8b --- /dev/null +++ b/packages/ai-models/scripts/rules.ts @@ -0,0 +1,165 @@ +import type { Wire } from './providers' +import type { + InputModality, + ModelCompat, + ReasoningLevel, + ReasoningLevels, +} from '../src/types' + +/** One entry of models.dev `reasoning_options`. */ +export type ReasoningOptionEntry = + | { type: 'effort'; values?: ReadonlyArray } + | { type: 'toggle' } + | { type: 'budget_tokens'; min?: number; max?: number } + | { type: string } + +/** The fields of a models.dev model that the generator reads. */ +export interface DevModel { + id: string + name?: string + reasoning?: boolean + reasoning_options?: ReadonlyArray + interleaved?: boolean | { field?: string } + temperature?: boolean + modalities?: { + input?: ReadonlyArray + output?: ReadonlyArray + } + cost?: { + input?: number + output?: number + cache_read?: number + cache_write?: number + tiers?: ReadonlyArray<{ + input?: number + output?: number + cache_read?: number + cache_write?: number + tier?: { type?: string; size?: number } + }> + } + limit?: { context?: number; output?: number } + provider?: { npm?: string; api?: string } +} + +const THINKING_LEVELS: ReadonlyArray> = [ + 'minimal', + 'low', + 'medium', + 'high', + 'xhigh', + 'max', +] + +const effortValues = ( + options: ReadonlyArray, +): ReadonlyArray | undefined => { + const effort = options.find((option) => option.type === 'effort') + if (!effort || !('values' in effort)) return undefined + return effort.values +} + +/** + * The levels of a model with no level data: every level up to `high`, each + * sent as its own name. The adapter turns them into a budget when the model + * takes one. + */ +export const DEFAULT_LEVELS: ReasoningLevels = { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', +} + +/** + * The levels from models.dev `reasoning_options`: + * - `effort` values: each value names its level, and `none` is the `off` + * value. A `toggle` next to it also gives `off: 'none'`. `default` with + * no `high` is the `high` value (Groq). + * - `toggle` alone: only `off` and `high`. + * - `budget_tokens` alone, or nothing: `DEFAULT_LEVELS`. + */ +export function reasoningLevelsFrom( + options: ReadonlyArray | undefined, +): ReasoningLevels { + const values = effortValues(options ?? []) + const toggle = (options ?? []).some((option) => option.type === 'toggle') + if (values && values.length > 0) { + const levels: ReasoningLevels = + values.includes('none') || toggle ? { off: 'none' } : {} + for (const level of THINKING_LEVELS) + if (values.includes(level)) levels[level] = level + if (!levels.high && values.includes('default')) levels.high = 'default' + return levels + } + if (toggle) return { off: 'off', high: 'high' } + return DEFAULT_LEVELS +} + +/** `true` when the model takes a thinking token budget. */ +export function takesBudget( + options: ReadonlyArray | undefined, +): boolean { + return (options ?? []).some((option) => option.type === 'budget_tokens') +} + +/** Claude 4.6 and later, with dash or dot ids (`claude-opus-4-7`, `anthropic/claude-opus-4.7`). */ +const ADAPTIVE_CLAUDE = + /claude-(?:(?:opus|sonnet)-4[.-][6-9]|(?:opus|sonnet|fable)-[5-9])/ + +/** The model hints models.dev has for the wire quirks. */ +export function modelHints( + model: DevModel, + wire: Wire, + effortByModel: boolean, +): ModelCompat { + const hints: ModelCompat = {} + const interleaved = model.interleaved + const replayField = + typeof interleaved === 'object' ? interleaved.field : undefined + if (wire.api === 'openai-completions' && replayField === 'reasoning_content') + hints.requiresReasoningContentOnAssistantMessages = true + if (model.temperature === false) hints.supportsTemperature = false + const options = model.reasoning_options ?? [] + // pi's rule: Claude 4.6 and later think adaptively, on every provider of + // the Anthropic wire. Another model on that wire thinks with a budget unless its + // provider row says otherwise (models.dev lists `effort` for many models + // that a gateway serves with budget thinking). + if (wire.api === 'anthropic-messages' && ADAPTIVE_CLAUDE.test(model.id)) + hints.forceAdaptiveThinking = true + if (effortByModel && wire.api === 'openai-completions') + hints.supportsReasoningEffort = (effortValues(options)?.length ?? 0) > 0 + return hints +} + +const INPUTS: ReadonlyArray = [ + 'text', + 'image', + 'audio', + 'video', + 'document', +] + +/** models.dev input kinds, in the catalog's names. `pdf` and `file` are documents. */ +export function inputModalities( + input: ReadonlyArray | undefined, +): ReadonlyArray { + const mapped = (input ?? ['text']).map((kind) => + kind === 'pdf' || kind === 'file' ? 'document' : kind, + ) + const known = INPUTS.filter((kind) => mapped.includes(kind)) + return known.length > 0 ? known : ['text'] +} + +// ponytail: an id match. Embedding, reranking, and transcription models list +// text output too, and models.dev has no other field that tells them apart. +const NOT_CHAT = /embed|rerank|whisper|transcri/i + +/** A chat model that makes text (not only images, speech, or embeddings). */ +export function makesText(model: DevModel): boolean { + return ( + (model.modalities?.output ?? ['text']).includes('text') && + !NOT_CHAT.test(model.id) + ) +} diff --git a/packages/ai-models/src/catalog.ts b/packages/ai-models/src/catalog.ts new file mode 100644 index 0000000000..e34afe4503 --- /dev/null +++ b/packages/ai-models/src/catalog.ts @@ -0,0 +1,84 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import * as amazonBedrock from './providers/amazon-bedrock' +import * as antLing from './providers/ant-ling' +import * as anthropic from './providers/anthropic' +import * as azureOpenaiResponses from './providers/azure-openai-responses' +import * as baseten from './providers/baseten' +import * as cerebras from './providers/cerebras' +import * as cloudflareAiGateway from './providers/cloudflare-ai-gateway' +import * as cloudflareWorkersAi from './providers/cloudflare-workers-ai' +import * as deepseek from './providers/deepseek' +import * as fireworks from './providers/fireworks' +import * as google from './providers/google' +import * as googleVertex from './providers/google-vertex' +import * as groq from './providers/groq' +import * as huggingface from './providers/huggingface' +import * as kimiCoding from './providers/kimi-coding' +import * as meta from './providers/meta' +import * as minimax from './providers/minimax' +import * as minimaxCn from './providers/minimax-cn' +import * as mistral from './providers/mistral' +import * as moonshotai from './providers/moonshotai' +import * as moonshotaiCn from './providers/moonshotai-cn' +import * as nvidia from './providers/nvidia' +import * as openai from './providers/openai' +import * as opencode from './providers/opencode' +import * as opencodeGo from './providers/opencode-go' +import * as openrouter from './providers/openrouter' +import * as qwenTokenPlan from './providers/qwen-token-plan' +import * as qwenTokenPlanCn from './providers/qwen-token-plan-cn' +import * as qwenTokenPlanIndividual from './providers/qwen-token-plan-individual' +import * as together from './providers/together' +import * as vercelAiGateway from './providers/vercel-ai-gateway' +import * as xai from './providers/xai' +import * as xiaomi from './providers/xiaomi' +import * as xiaomiTokenPlanAms from './providers/xiaomi-token-plan-ams' +import * as xiaomiTokenPlanCn from './providers/xiaomi-token-plan-cn' +import * as xiaomiTokenPlanSgp from './providers/xiaomi-token-plan-sgp' +import * as zai from './providers/zai' +import * as zaiCodingCn from './providers/zai-coding-cn' + +/** The day the catalog was generated, as `YYYY-MM-DD`. */ +export const generatedAt = '2026-10-14' + +/** Every provider module, in id order. */ +export const providerModules = [ + amazonBedrock, + antLing, + anthropic, + azureOpenaiResponses, + baseten, + cerebras, + cloudflareAiGateway, + cloudflareWorkersAi, + deepseek, + fireworks, + google, + googleVertex, + groq, + huggingface, + kimiCoding, + meta, + minimax, + minimaxCn, + mistral, + moonshotai, + moonshotaiCn, + nvidia, + openai, + opencode, + opencodeGo, + openrouter, + qwenTokenPlan, + qwenTokenPlanCn, + qwenTokenPlanIndividual, + together, + vercelAiGateway, + xai, + xiaomi, + xiaomiTokenPlanAms, + xiaomiTokenPlanCn, + xiaomiTokenPlanSgp, + zai, + zaiCodingCn, +] diff --git a/packages/ai-models/src/cost.ts b/packages/ai-models/src/cost.ts new file mode 100644 index 0000000000..aaaffebd79 --- /dev/null +++ b/packages/ai-models/src/cost.ts @@ -0,0 +1,38 @@ +import type { Cost, ModelRecord, TokenCounts } from './types' + +/** + * What a call cost in USD: each price is per 1M tokens, so the cost of a part + * is `price / 1_000_000 * tokens`. pi's rules: + * - A call with more input than a tier's `inputTokensAbove` uses that tier's + * prices: the tier with the highest threshold below the input (uncached + + * cache read + cache write). + * - A 1-hour cache write (`cacheWrite1h`) costs 2x the input price. The rest + * of `cacheWrite` costs the cache write price. + */ +export function modelCost( + model: Pick, + usage: TokenCounts, +): Cost { + const totalInput = + usage.input + (usage.cacheRead ?? 0) + (usage.cacheWrite ?? 0) + const rates = + (model.cost.tiers ?? []) + .filter((tier) => totalInput > tier.inputTokensAbove) + .sort((a, b) => b.inputTokensAbove - a.inputTokensAbove)[0] ?? model.cost + const part = (price: number, tokens = 0) => (price / 1_000_000) * tokens + // ponytail: `cacheWrite1h` is a part of `cacheWrite`, so it is capped there. + const longWrite = Math.min(usage.cacheWrite1h ?? 0, usage.cacheWrite ?? 0) + const input = part(rates.input, usage.input) + const output = part(rates.output, usage.output) + const cacheRead = part(rates.cacheRead, usage.cacheRead) + const cacheWrite = + part(rates.cacheWrite, (usage.cacheWrite ?? 0) - longWrite) + + part(rates.input * 2, longWrite) + return { + input, + output, + cacheRead, + cacheWrite, + total: input + output + cacheRead + cacheWrite, + } +} diff --git a/packages/ai-models/src/index.ts b/packages/ai-models/src/index.ts new file mode 100644 index 0000000000..33928c6272 --- /dev/null +++ b/packages/ai-models/src/index.ts @@ -0,0 +1,42 @@ +import { generatedAt, providerModules } from './catalog' +import type { ModelRecord, ProviderRecord } from './types' + +export { generatedAt } +export { clampReasoningLevel, supportedReasoningLevels } from './reasoning' +export { modelCost } from './cost' +export type { + Cost, + InputModality, + ModelCompat, + ModelCostRates, + ModelCostTier, + ModelReasoning, + ModelRecord, + ProviderRecord, + ReasoningLevel, + ReasoningLevels, + ThinkingFormat, + TokenCounts, + WireApi, +} from './types' + +/** Every provider, in id order. */ +export function getProviders(): ReadonlyArray { + return providerModules.map((module) => module.provider) +} + +/** Every model of a provider, sorted by id. Empty for an unknown provider. */ +export function getModels(providerId: string): ReadonlyArray { + return ( + providerModules.find((module) => module.provider.id === providerId) + ?.models ?? [] + ) +} + +/** One model, or `undefined` when the catalog does not have it. */ +export function getModel( + providerId: string, + modelId: string, +): ModelRecord | undefined { + return getModels(providerId).find((model) => model.id === modelId) +} diff --git a/packages/ai-models/src/providers/amazon-bedrock.ts b/packages/ai-models/src/providers/amazon-bedrock.ts new file mode 100644 index 0000000000..673cd9ff61 --- /dev/null +++ b/packages/ai-models/src/providers/amazon-bedrock.ts @@ -0,0 +1,3468 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Amazon Bedrock. */ +export const provider: ProviderRecord = { + id: 'amazon-bedrock', + name: 'Amazon Bedrock', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + apis: ['bedrock-converse-stream'], + env: [ + ['AWS_PROFILE'], + ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY'], + ['AWS_BEARER_TOKEN_BEDROCK'], + ['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'], + ['AWS_CONTAINER_CREDENTIALS_FULL_URI'], + ['AWS_WEB_IDENTITY_TOKEN_FILE'], + ], +} + +/** Every Amazon Bedrock model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'amazon.nova-2-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova 2 Lite', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.33, output: 2.75, cacheRead: 0.0825, cacheWrite: 0.33 }, + contextWindow: 1000000, + maxTokens: 65535, + }, + { + id: 'amazon.nova-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Lite', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.06, output: 0.24, cacheRead: 0.015, cacheWrite: 0.06 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'amazon.nova-micro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Micro', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.035, output: 0.14, cacheRead: 0.00875, cacheWrite: 0.035 }, + contextWindow: 128000, + maxTokens: 10000, + }, + { + id: 'amazon.nova-pro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Pro', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.8, output: 3.2, cacheRead: 0.2, cacheWrite: 0.8 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'anthropic.claude-fable-5', + provider: 'amazon-bedrock', + name: 'Claude Fable 5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-fable-5-1', + provider: 'amazon-bedrock', + name: 'Claude Fable 5.1', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-haiku-4-5-20251001-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Haiku 4.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'anthropic.claude-opus-4-1-20250805-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.1', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, + contextWindow: 200000, + maxTokens: 32000, + }, + { + id: 'anthropic.claude-opus-4-5-20251101-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'anthropic.claude-opus-4-6-v1', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.6', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'anthropic.claude-opus-4-7', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.7', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-opus-4-8', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.8', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-opus-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-opus-5-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-sonnet-4-5-20250929-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'anthropic.claude-sonnet-4-6', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.6', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'anthropic.claude-sonnet-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'anthropic.claude-sonnet-5-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'apac.amazon.nova-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Lite (APAC)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { + input: 0.063, + output: 0.252, + cacheRead: 0.01575, + cacheWrite: 0.063, + }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'apac.amazon.nova-micro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Micro (APAC)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { + input: 0.037, + output: 0.148, + cacheRead: 0.00925, + cacheWrite: 0.037, + }, + contextWindow: 128000, + maxTokens: 10000, + }, + { + id: 'apac.amazon.nova-pro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Pro (APAC)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.84, output: 3.36, cacheRead: 0.21, cacheWrite: 0.84 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'apac.anthropic.claude-sonnet-4-20250514-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4 (APAC)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'au.anthropic.claude-haiku-4-5-20251001-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Haiku 4.5 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1.1, output: 5.5, cacheRead: 0.11, cacheWrite: 1.375 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'au.anthropic.claude-opus-4-6-v1', + provider: 'amazon-bedrock', + name: 'AU Anthropic Claude Opus 4.6', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'au.anthropic.claude-opus-4-7', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.7 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'au.anthropic.claude-opus-4-8', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.8 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'au.anthropic.claude-opus-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'au.anthropic.claude-opus-5-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5.5 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4.4, output: 22, cacheRead: 0.22, cacheWrite: 5.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'au.anthropic.claude-sonnet-4-5-20250929-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.5 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'au.anthropic.claude-sonnet-4-6', + provider: 'amazon-bedrock', + name: 'AU Anthropic Claude Sonnet 4.6', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'au.anthropic.claude-sonnet-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5 (AU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.2, output: 11, cacheRead: 0.22, cacheWrite: 2.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'ca.amazon.nova-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Lite (CA)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.064, output: 0.256, cacheRead: 0.016, cacheWrite: 0.064 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'deepseek.r1-v1:0', + provider: 'amazon-bedrock', + name: 'DeepSeek-R1', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + }, + { + id: 'deepseek.v3-v1:0', + provider: 'amazon-bedrock', + name: 'DeepSeek-V3.1', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.58, output: 1.68, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 81920, + }, + { + id: 'deepseek.v3.2', + provider: 'amazon-bedrock', + name: 'DeepSeek V3.2', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.62, output: 1.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 81920, + }, + { + id: 'eu.amazon.nova-2-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova 2 Lite (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.374, output: 3.157, cacheRead: 0.0935, cacheWrite: 0.374 }, + contextWindow: 1000000, + maxTokens: 65535, + }, + { + id: 'eu.amazon.nova-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Lite (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { + input: 0.069, + output: 0.276, + cacheRead: 0.01725, + cacheWrite: 0.069, + }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'eu.amazon.nova-micro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Micro (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.16, cacheRead: 0.01, cacheWrite: 0.04 }, + contextWindow: 128000, + maxTokens: 10000, + }, + { + id: 'eu.amazon.nova-pro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Pro (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.92, output: 3.68, cacheRead: 0.23, cacheWrite: 0.92 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'eu.anthropic.claude-fable-5', + provider: 'amazon-bedrock', + name: 'Claude Fable 5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 11, output: 55, cacheRead: 1.1, cacheWrite: 13.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'eu.anthropic.claude-haiku-4-5-20251001-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Haiku 4.5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1.1, output: 5.5, cacheRead: 0.11, cacheWrite: 1.375 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'eu.anthropic.claude-opus-4-5-20251101-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'eu.anthropic.claude-opus-4-6-v1', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.6 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'eu.anthropic.claude-opus-4-7', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.7 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'eu.anthropic.claude-opus-4-8', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.8 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'eu.anthropic.claude-opus-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'eu.anthropic.claude-opus-5-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5.5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4.4, output: 22, cacheRead: 0.22, cacheWrite: 5.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'eu.anthropic.claude-sonnet-4-20250514-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'eu.anthropic.claude-sonnet-4-5-20250929-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'eu.anthropic.claude-sonnet-4-6', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.6 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'eu.anthropic.claude-sonnet-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5 (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.2, output: 11, cacheRead: 0.22, cacheWrite: 2.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'eu.mistral.pixtral-large-2502-v1:0', + provider: 'amazon-bedrock', + name: 'Pixtral Large (25.02) (EU)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.eu-central-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'global.amazon.nova-2-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova 2 Lite (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.075, cacheWrite: 0.3 }, + contextWindow: 1000000, + maxTokens: 65535, + }, + { + id: 'global.anthropic.claude-fable-5', + provider: 'amazon-bedrock', + name: 'Claude Fable 5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-fable-5-1', + provider: 'amazon-bedrock', + name: 'Claude Fable 5.1 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-haiku-4-5-20251001-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Haiku 4.5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'global.anthropic.claude-opus-4-5-20251101-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'global.anthropic.claude-opus-4-6-v1', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.6 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'global.anthropic.claude-opus-4-7', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.7 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-opus-4-8', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.8 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-opus-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-opus-5-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5.5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-sonnet-4-20250514-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'global.anthropic.claude-sonnet-4-5-20250929-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'global.anthropic.claude-sonnet-4-6', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.6 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'global.anthropic.claude-sonnet-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.anthropic.claude-sonnet-5-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5.5 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.moonshotai.kimi-k3', + provider: 'amazon-bedrock', + name: 'Kimi K3 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1048576, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.openai.gpt-5.6-luna', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Luna (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.openai.gpt-5.6-sol', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Sol (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.openai.gpt-5.6-terra', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Terra (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.openai.gpt-6-astra', + provider: 'amazon-bedrock', + name: 'GPT-6 Astra (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.openai.gpt-6-luna', + provider: 'amazon-bedrock', + name: 'GPT-6 Luna (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.openai.gpt-6-sol', + provider: 'amazon-bedrock', + name: 'GPT-6 Sol (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'global.xai.grok-4.6', + provider: 'amazon-bedrock', + name: 'Grok 4.6 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 500000, + maxTokens: 500000, + }, + { + id: 'global.xai.grok-4.7', + provider: 'amazon-bedrock', + name: 'Grok 4.7 (Global)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 500000, + maxTokens: 500000, + }, + { + id: 'google.gemma-3-12b-it', + provider: 'amazon-bedrock', + name: 'Gemma 3 12B IT', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.09, output: 0.29, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + }, + { + id: 'google.gemma-3-27b-it', + provider: 'amazon-bedrock', + name: 'Gemma 3 27B IT', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.23, output: 0.38, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + }, + { + id: 'google.gemma-3-4b-it', + provider: 'amazon-bedrock', + name: 'Gemma 3 4B IT', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.04, output: 0.08, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 4096, + }, + { + id: 'google.gemma-4-26b-a4b', + provider: 'amazon-bedrock', + name: 'Gemma 4 26B A4B IT', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.13, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + }, + { + id: 'google.gemma-4-31b', + provider: 'amazon-bedrock', + name: 'Gemma 4 31B IT', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + }, + { + id: 'google.gemma-4-e2b', + provider: 'amazon-bedrock', + name: 'Gemma 4 E2B IT', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.04, output: 0.08, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + }, + { + id: 'in.openai.gpt-5.6-luna', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Luna (India)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.22, + output: 1.32, + cacheRead: 0.022, + cacheWrite: 0.275, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.44, + output: 1.98, + cacheRead: 0.044, + cacheWrite: 0.55, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'in.openai.gpt-5.6-terra', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Terra (India)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2.2, + output: 13.2, + cacheRead: 0.22, + cacheWrite: 2.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 4.4, + output: 19.8, + cacheRead: 0.44, + cacheWrite: 5.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'jp.amazon.nova-2-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova 2 Lite (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.396, output: 3.311, cacheRead: 0.099, cacheWrite: 0.396 }, + contextWindow: 1000000, + maxTokens: 65535, + }, + { + id: 'jp.anthropic.claude-haiku-4-5-20251001-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Haiku 4.5 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1.1, output: 5.5, cacheRead: 0.11, cacheWrite: 1.375 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'jp.anthropic.claude-opus-4-7', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.7 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'jp.anthropic.claude-opus-4-8', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.8 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'jp.anthropic.claude-opus-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'jp.anthropic.claude-opus-5-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5.5 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4.4, output: 22, cacheRead: 0.22, cacheWrite: 5.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'jp.anthropic.claude-sonnet-4-5-20250929-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.5 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'jp.anthropic.claude-sonnet-4-6', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.6 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'jp.anthropic.claude-sonnet-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5 (JP)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.2, output: 11, cacheRead: 0.22, cacheWrite: 2.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'meta.llama3-1-70b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 3.1 70B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'meta.llama3-1-8b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 3.1 8B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.22, output: 0.22, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'meta.llama3-3-70b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 3.3 70B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'meta.llama4-maverick-17b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 4 Maverick 17B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.24, output: 0.97, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 8192, + }, + { + id: 'meta.llama4-scout-17b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 4 Scout 17B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.17, output: 0.66, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 10000000, + maxTokens: 8192, + }, + { + id: 'minimax.minimax-m2', + provider: 'amazon-bedrock', + name: 'MiniMax-M2', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204608, + maxTokens: 128000, + }, + { + id: 'minimax.minimax-m2.1', + provider: 'amazon-bedrock', + name: 'MiniMax-M2.1', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 196608, + maxTokens: 131072, + }, + { + id: 'minimax.minimax-m2.5', + provider: 'amazon-bedrock', + name: 'MiniMax-M2.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 196608, + maxTokens: 98304, + }, + { + id: 'mistral.devstral-2-123b', + provider: 'amazon-bedrock', + name: 'Devstral 2 123B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 8192, + }, + { + id: 'mistral.magistral-small-2509', + provider: 'amazon-bedrock', + name: 'Magistral Small 1.2', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 40000, + }, + { + id: 'mistral.ministral-3-14b-instruct', + provider: 'amazon-bedrock', + name: 'Ministral 14B 3.0', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'mistral.ministral-3-3b-instruct', + provider: 'amazon-bedrock', + name: 'Ministral 3 3B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 8192, + }, + { + id: 'mistral.ministral-3-8b-instruct', + provider: 'amazon-bedrock', + name: 'Ministral 3 8B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'mistral.mistral-large-3-675b-instruct', + provider: 'amazon-bedrock', + name: 'Mistral Large 3', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 8192, + }, + { + id: 'mistral.pixtral-large-2502-v1:0', + provider: 'amazon-bedrock', + name: 'Pixtral Large (25.02)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'mistral.voxtral-mini-3b-2507', + provider: 'amazon-bedrock', + name: 'Voxtral Mini 3B 2507', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.04, output: 0.04, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 4096, + }, + { + id: 'mistral.voxtral-small-24b-2507', + provider: 'amazon-bedrock', + name: 'Voxtral Small 24B 2507', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 8192, + }, + { + id: 'moonshot.kimi-k2-thinking', + provider: 'amazon-bedrock', + name: 'Kimi K2 Thinking', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16000, + }, + { + id: 'moonshotai.kimi-k2.5', + provider: 'amazon-bedrock', + name: 'Kimi K2.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + }, + { + id: 'nvidia.nemotron-nano-12b-v2', + provider: 'amazon-bedrock', + name: 'NVIDIA Nemotron Nano 12B v2 VL BF16', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + }, + { + id: 'nvidia.nemotron-nano-3-30b', + provider: 'amazon-bedrock', + name: 'NVIDIA Nemotron Nano 3 30B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.06, output: 0.24, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 8192, + }, + { + id: 'nvidia.nemotron-nano-9b-v2', + provider: 'amazon-bedrock', + name: 'NVIDIA Nemotron Nano 9B v2', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.06, output: 0.23, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + }, + { + id: 'nvidia.nemotron-super-3-120b', + provider: 'amazon-bedrock', + name: 'NVIDIA Nemotron 3 Super 120B A12B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 0.65, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + }, + { + id: 'openai.gpt-5.4', + provider: 'amazon-bedrock', + name: 'GPT-5.4', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 2.75, output: 16.5, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'openai.gpt-5.5', + provider: 'amazon-bedrock', + name: 'GPT-5.5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 5.5, output: 33, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-5.6-luna', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Luna', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.22, + output: 1.32, + cacheRead: 0.022, + cacheWrite: 0.275, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.44, + output: 1.98, + cacheRead: 0.044, + cacheWrite: 0.55, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-5.6-sol', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Sol', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4.4, + output: 22, + cacheRead: 0.44, + cacheWrite: 5.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8.8, + output: 33, + cacheRead: 0.88, + cacheWrite: 11, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-5.6-terra', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Terra', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2.2, + output: 13.2, + cacheRead: 0.22, + cacheWrite: 2.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 4.4, + output: 19.8, + cacheRead: 0.44, + cacheWrite: 5.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-6-astra', + provider: 'amazon-bedrock', + name: 'GPT-6 Astra', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 11, + output: 55, + cacheRead: 1.1, + cacheWrite: 13.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 22, + output: 82.5, + cacheRead: 2.2, + cacheWrite: 27.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-6-luna', + provider: 'amazon-bedrock', + name: 'GPT-6 Luna', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.11, + output: 0.55, + cacheRead: 0.011, + cacheWrite: 0.1375, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.22, + output: 0.825, + cacheRead: 0.022, + cacheWrite: 0.275, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-6-sol', + provider: 'amazon-bedrock', + name: 'GPT-6 Sol', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2.2, + output: 11, + cacheRead: 0.22, + cacheWrite: 2.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 4.4, + output: 16.5, + cacheRead: 0.44, + cacheWrite: 5.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'openai.gpt-oss-120b', + provider: 'amazon-bedrock', + name: 'gpt-oss-120b', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + }, + { + id: 'openai.gpt-oss-120b-1:0', + provider: 'amazon-bedrock', + name: 'gpt-oss-120b', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 128000, + }, + { + id: 'openai.gpt-oss-20b', + provider: 'amazon-bedrock', + name: 'gpt-oss-20b', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.07, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + }, + { + id: 'openai.gpt-oss-20b-1:0', + provider: 'amazon-bedrock', + name: 'gpt-oss-20b', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.07, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 128000, + }, + { + id: 'openai.gpt-oss-safeguard-120b', + provider: 'amazon-bedrock', + name: 'GPT OSS Safeguard 120B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'openai.gpt-oss-safeguard-20b', + provider: 'amazon-bedrock', + name: 'GPT OSS Safeguard 20B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.07, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'qwen.qwen3-235b-a22b-2507-v1:0', + provider: 'amazon-bedrock', + name: 'Qwen3 235B-A22B Instruct 2507', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.22, output: 0.88, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + }, + { + id: 'qwen.qwen3-32b-v1:0', + provider: 'amazon-bedrock', + name: 'Qwen3 32B', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 16384, + }, + { + id: 'qwen.qwen3-coder-30b-a3b-v1:0', + provider: 'amazon-bedrock', + name: 'Qwen3-Coder 30B-A3B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + }, + { + id: 'qwen.qwen3-coder-480b-a35b-v1:0', + provider: 'amazon-bedrock', + name: 'Qwen3-Coder 480B-A35B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.45, output: 1.8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + }, + { + id: 'qwen.qwen3-coder-next', + provider: 'amazon-bedrock', + name: 'Qwen3 Coder Next', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.5, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + }, + { + id: 'qwen.qwen3-next-80b-a3b', + provider: 'amazon-bedrock', + name: 'Qwen3-Next 80B-A3B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262000, + }, + { + id: 'qwen.qwen3-vl-235b-a22b', + provider: 'amazon-bedrock', + name: 'Qwen3 VL 235B A22B Instruct', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.53, output: 2.66, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262000, + }, + { + id: 'us-gov.openai.gpt-oss-120b-1:0', + provider: 'amazon-bedrock', + name: 'gpt-oss-120b (GovCloud)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.18, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'us-gov.openai.gpt-oss-20b-1:0', + provider: 'amazon-bedrock', + name: 'gpt-oss-20b (GovCloud)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.084, output: 0.36, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'us.amazon.nova-2-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova 2 Lite (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.33, output: 2.75, cacheRead: 0.0825, cacheWrite: 0.33 }, + contextWindow: 1000000, + maxTokens: 65535, + }, + { + id: 'us.amazon.nova-lite-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Lite (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.06, output: 0.24, cacheRead: 0.015, cacheWrite: 0.06 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'us.amazon.nova-micro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Micro (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.035, output: 0.14, cacheRead: 0.00875, cacheWrite: 0.035 }, + contextWindow: 128000, + maxTokens: 10000, + }, + { + id: 'us.amazon.nova-premier-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Premier (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 2.5, output: 12.5, cacheRead: 0.625, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 10000, + }, + { + id: 'us.amazon.nova-pro-v1:0', + provider: 'amazon-bedrock', + name: 'Nova Pro (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.8, output: 3.2, cacheRead: 0.2, cacheWrite: 0.8 }, + contextWindow: 300000, + maxTokens: 10000, + }, + { + id: 'us.anthropic.claude-fable-5', + provider: 'amazon-bedrock', + name: 'Claude Fable 5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 11, output: 55, cacheRead: 1.1, cacheWrite: 13.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.anthropic.claude-fable-5-1', + provider: 'amazon-bedrock', + name: 'Claude Fable 5.1 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 11, output: 55, cacheRead: 0.275, cacheWrite: 13.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.anthropic.claude-haiku-4-5-20251001-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Haiku 4.5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1.1, output: 5.5, cacheRead: 0.11, cacheWrite: 1.375 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'us.anthropic.claude-opus-4-1-20250805-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.1 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, + contextWindow: 200000, + maxTokens: 32000, + }, + { + id: 'us.anthropic.claude-opus-4-5-20251101-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'us.anthropic.claude-opus-4-6-v1', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.6 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'us.anthropic.claude-opus-4-7', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.7 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.anthropic.claude-opus-4-8', + provider: 'amazon-bedrock', + name: 'Claude Opus 4.8 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.anthropic.claude-opus-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.anthropic.claude-opus-5-5', + provider: 'amazon-bedrock', + name: 'Claude Opus 5.5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4.4, output: 22, cacheRead: 0.22, cacheWrite: 5.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.anthropic.claude-sonnet-4-20250514-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'us.anthropic.claude-sonnet-4-5-20250929-v1:0', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'us.anthropic.claude-sonnet-4-6', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 4.6 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 1000000, + maxTokens: 128000, + }, + { + id: 'us.anthropic.claude-sonnet-5', + provider: 'amazon-bedrock', + name: 'Claude Sonnet 5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.2, output: 11, cacheRead: 0.22, cacheWrite: 2.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.deepseek.r1-v1:0', + provider: 'amazon-bedrock', + name: 'DeepSeek-R1 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + }, + { + id: 'us.meta.llama3-1-70b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 3.1 70B Instruct (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'us.meta.llama3-1-8b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 3.1 8B Instruct (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.22, output: 0.22, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'us.meta.llama3-3-70b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 3.3 70B Instruct (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: false, + cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'us.meta.llama4-maverick-17b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 4 Maverick 17B Instruct (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.24, output: 0.97, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 8192, + }, + { + id: 'us.meta.llama4-scout-17b-instruct-v1:0', + provider: 'amazon-bedrock', + name: 'Llama 4 Scout 17B Instruct (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.17, output: 0.66, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 10000000, + maxTokens: 8192, + }, + { + id: 'us.mistral.pixtral-large-2502-v1:0', + provider: 'amazon-bedrock', + name: 'Pixtral Large (25.02) (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'us.moonshotai.kimi-k3', + provider: 'amazon-bedrock', + name: 'Kimi K3 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, + contextWindow: 1048576, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.openai.gpt-5.6-luna', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Luna (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.22, + output: 1.32, + cacheRead: 0.022, + cacheWrite: 0.275, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.44, + output: 1.98, + cacheRead: 0.044, + cacheWrite: 0.55, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.openai.gpt-5.6-sol', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Sol (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4.4, + output: 22, + cacheRead: 0.44, + cacheWrite: 5.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8.8, + output: 33, + cacheRead: 0.88, + cacheWrite: 11, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.openai.gpt-5.6-terra', + provider: 'amazon-bedrock', + name: 'GPT-5.6 Terra (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2.2, + output: 13.2, + cacheRead: 0.22, + cacheWrite: 2.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 4.4, + output: 19.8, + cacheRead: 0.44, + cacheWrite: 5.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.openai.gpt-6-astra', + provider: 'amazon-bedrock', + name: 'GPT-6 Astra (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 11, + output: 55, + cacheRead: 1.1, + cacheWrite: 13.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 22, + output: 82.5, + cacheRead: 2.2, + cacheWrite: 27.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.openai.gpt-6-luna', + provider: 'amazon-bedrock', + name: 'GPT-6 Luna (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.11, + output: 0.55, + cacheRead: 0.011, + cacheWrite: 0.1375, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.22, + output: 0.825, + cacheRead: 0.022, + cacheWrite: 0.275, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.openai.gpt-6-sol', + provider: 'amazon-bedrock', + name: 'GPT-6 Sol (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2.2, + output: 11, + cacheRead: 0.22, + cacheWrite: 2.75, + tiers: [ + { + inputTokensAbove: 272000, + input: 4.4, + output: 16.5, + cacheRead: 0.44, + cacheWrite: 5.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'us.writer.palmyra-x4-v1:0', + provider: 'amazon-bedrock', + name: 'Palmyra X4 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 122880, + maxTokens: 8192, + }, + { + id: 'us.writer.palmyra-x5-v1:0', + provider: 'amazon-bedrock', + name: 'Palmyra X5 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1040000, + maxTokens: 8192, + }, + { + id: 'us.xai.grok-4.6', + provider: 'amazon-bedrock', + name: 'Grok 4.6 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2.2, output: 6.6, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 500000, + maxTokens: 500000, + }, + { + id: 'us.xai.grok-4.7', + provider: 'amazon-bedrock', + name: 'Grok 4.7 (US)', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2.2, output: 6.6, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 500000, + maxTokens: 500000, + }, + { + id: 'writer.palmyra-x4-v1:0', + provider: 'amazon-bedrock', + name: 'Palmyra X4', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 122880, + maxTokens: 8192, + }, + { + id: 'writer.palmyra-x5-v1:0', + provider: 'amazon-bedrock', + name: 'Palmyra X5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1040000, + maxTokens: 8192, + }, + { + id: 'xai.grok-4.3', + provider: 'amazon-bedrock', + name: 'Grok 4.3', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + }, + { + id: 'xai.grok-4.6', + provider: 'amazon-bedrock', + name: 'Grok 4.6', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2.2, output: 6.6, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 500000, + maxTokens: 500000, + }, + { + id: 'zai.glm-4.7', + provider: 'amazon-bedrock', + name: 'GLM-4.7', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + }, + { + id: 'zai.glm-4.7-flash', + provider: 'amazon-bedrock', + name: 'GLM-4.7-Flash', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.07, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + }, + { + id: 'zai.glm-5', + provider: 'amazon-bedrock', + name: 'GLM-5', + api: 'bedrock-converse-stream', + baseUrl: 'https://bedrock-runtime.us-east-1.amazonaws.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + }, +] diff --git a/packages/ai-models/src/providers/ant-ling.ts b/packages/ai-models/src/providers/ant-ling.ts new file mode 100644 index 0000000000..5adc998244 --- /dev/null +++ b/packages/ai-models/src/providers/ant-ling.ts @@ -0,0 +1,90 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Ant Ling. */ +export const provider: ProviderRecord = { + id: 'ant-ling', + name: 'Ant Ling', + baseUrl: 'https://api.ant-ling.com/v1', + apis: ['openai-completions'], + env: [['ANT_LING_API_KEY']], +} + +/** Every Ant Ling model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'Ling-2.6-1T', + provider: 'ant-ling', + name: 'Ling-2.6-1T', + api: 'openai-completions', + baseUrl: 'https://api.ant-ling.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 2.5, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'ant-ling', + supportsStrictMode: true, + supportsLongCacheRetention: false, + }, + borrowedFrom: 'novita-ai/inclusionai/ling-2.6-1t', + }, + { + id: 'Ling-2.6-flash', + provider: 'ant-ling', + name: 'Ling-2.6-flash', + api: 'openai-completions', + baseUrl: 'https://api.ant-ling.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'ant-ling', + supportsStrictMode: true, + supportsLongCacheRetention: false, + }, + borrowedFrom: 'novita-ai/inclusionai/ling-2.6-flash', + }, + { + id: 'Ring-2.6-1T', + provider: 'ant-ling', + name: 'Ring-2.6-1T', + api: 'openai-completions', + baseUrl: 'https://api.ant-ling.com/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'ant-ling', + supportsStrictMode: true, + supportsLongCacheRetention: false, + }, + borrowedFrom: 'novita-ai/inclusionai/ring-2.6-1t', + }, +] diff --git a/packages/ai-models/src/providers/anthropic.ts b/packages/ai-models/src/providers/anthropic.ts new file mode 100644 index 0000000000..30585b639e --- /dev/null +++ b/packages/ai-models/src/providers/anthropic.ts @@ -0,0 +1,383 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Anthropic. */ +export const provider: ProviderRecord = { + id: 'anthropic', + name: 'Anthropic', + baseUrl: 'https://api.anthropic.com', + apis: ['anthropic-messages'], + env: [ + ['ANTHROPIC_API_KEY'], + ['ANTHROPIC_OAUTH_TOKEN'], + ['ANTHROPIC_AUTH_TOKEN'], + ], +} + +/** Every Anthropic model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'claude-fable-5', + provider: 'anthropic', + name: 'Claude Fable 5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-fable-5-1', + provider: 'anthropic', + name: 'Claude Fable 5.1', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsMidConvoEffort: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-haiku-4-5', + provider: 'anthropic', + name: 'Claude Haiku 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { supportsStrictTools: true }, + }, + { + id: 'claude-haiku-4-5-20251001', + provider: 'anthropic', + name: 'Claude Haiku 4.5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { supportsStrictTools: true }, + }, + { + id: 'claude-opus-4-5', + provider: 'anthropic', + name: 'Claude Opus 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { supportsStrictTools: true }, + }, + { + id: 'claude-opus-4-5-20251101', + provider: 'anthropic', + name: 'Claude Opus 4.5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { supportsStrictTools: true }, + }, + { + id: 'claude-opus-4-6', + provider: 'anthropic', + name: 'Claude Opus 4.6', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsStrictTools: true, forceAdaptiveThinking: true }, + }, + { + id: 'claude-opus-4-7', + provider: 'anthropic', + name: 'Claude Opus 4.7', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-opus-4-8', + provider: 'anthropic', + name: 'Claude Opus 4.8', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-opus-5', + provider: 'anthropic', + name: 'Claude Opus 5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsMidConvoEffort: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-opus-5-5', + provider: 'anthropic', + name: 'Claude Opus 5.5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsMidConvoEffort: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-sonnet-4-5', + provider: 'anthropic', + name: 'Claude Sonnet 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { supportsStrictTools: true }, + }, + { + id: 'claude-sonnet-4-5-20250929', + provider: 'anthropic', + name: 'Claude Sonnet 4.5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { supportsStrictTools: true }, + }, + { + id: 'claude-sonnet-4-6', + provider: 'anthropic', + name: 'Claude Sonnet 4.6', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsStrictTools: true, forceAdaptiveThinking: true }, + }, + { + id: 'claude-sonnet-5', + provider: 'anthropic', + name: 'Claude Sonnet 5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-sonnet-5-5', + provider: 'anthropic', + name: 'Claude Sonnet 5.5', + api: 'anthropic-messages', + baseUrl: 'https://api.anthropic.com', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStrictTools: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/azure-openai-responses.ts b/packages/ai-models/src/providers/azure-openai-responses.ts new file mode 100644 index 0000000000..a7b798ee26 --- /dev/null +++ b/packages/ai-models/src/providers/azure-openai-responses.ts @@ -0,0 +1,1441 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Azure OpenAI. */ +export const provider: ProviderRecord = { + id: 'azure-openai-responses', + name: 'Azure OpenAI', + baseUrl: '', + apis: ['azure-openai-responses'], + env: [['AZURE_OPENAI_API_KEY']], +} + +/** Every Azure OpenAI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'codestral-2501', + provider: 'azure-openai-responses', + name: 'Codestral 25.01', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + }, + { + id: 'codex-mini', + provider: 'azure-openai-responses', + name: 'Codex Mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.5, output: 6, cacheRead: 0.375, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + }, + { + id: 'cohere-command-a', + provider: 'azure-openai-responses', + name: 'Command A', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + }, + { + id: 'deepseek-r1', + provider: 'azure-openai-responses', + name: 'DeepSeek-R1', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 163840, + }, + { + id: 'deepseek-v3.2', + provider: 'azure-openai-responses', + name: 'DeepSeek-V3.2', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.58, output: 1.68, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'deepseek-v3.2-speciale', + provider: 'azure-openai-responses', + name: 'DeepSeek-V3.2-Speciale', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.58, output: 1.68, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'gpt-3.5-turbo-0125', + provider: 'azure-openai-responses', + name: 'GPT-3.5 Turbo 0125', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16384, + maxTokens: 4096, + }, + { + id: 'gpt-3.5-turbo-1106', + provider: 'azure-openai-responses', + name: 'GPT-3.5 Turbo 1106', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 1, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16384, + maxTokens: 4096, + }, + { + id: 'gpt-3.5-turbo-instruct', + provider: 'azure-openai-responses', + name: 'GPT-3.5 Turbo Instruct', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 1.5, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 4096, + maxTokens: 4096, + }, + { + id: 'gpt-4', + provider: 'azure-openai-responses', + name: 'GPT-4', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 8192, + borrowedFrom: 'openai/gpt-4', + }, + { + id: 'gpt-4-turbo', + provider: 'azure-openai-responses', + name: 'GPT-4 Turbo', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'gpt-4-turbo-vision', + provider: 'azure-openai-responses', + name: 'GPT-4 Turbo Vision', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'gpt-4.1', + provider: 'azure-openai-responses', + name: 'GPT-4.1', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + }, + { + id: 'gpt-4.1-mini', + provider: 'azure-openai-responses', + name: 'GPT-4.1 mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + }, + { + id: 'gpt-4.1-nano', + provider: 'azure-openai-responses', + name: 'GPT-4.1 nano', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + }, + { + id: 'gpt-4o', + provider: 'azure-openai-responses', + name: 'GPT-4o', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'gpt-4o-2024-05-13', + provider: 'azure-openai-responses', + name: 'GPT-4o (2024-05-13)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + borrowedFrom: 'openai/gpt-4o-2024-05-13', + }, + { + id: 'gpt-4o-2024-08-06', + provider: 'azure-openai-responses', + name: 'GPT-4o (2024-08-06)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + borrowedFrom: 'openai/gpt-4o-2024-08-06', + }, + { + id: 'gpt-4o-2024-11-20', + provider: 'azure-openai-responses', + name: 'GPT-4o (2024-11-20)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + borrowedFrom: 'openai/gpt-4o-2024-11-20', + }, + { + id: 'gpt-4o-mini', + provider: 'azure-openai-responses', + name: 'GPT-4o mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'gpt-5', + provider: 'azure-openai-responses', + name: 'GPT-5', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5-chat-latest', + provider: 'azure-openai-responses', + name: 'gpt-5-chat-latest', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 1.125, output: 9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + borrowedFrom: 'jiekou/gpt-5-chat-latest', + }, + { + id: 'gpt-5-codex', + provider: 'azure-openai-responses', + name: 'GPT-5-Codex', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5-mini', + provider: 'azure-openai-responses', + name: 'GPT-5 Mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5-nano', + provider: 'azure-openai-responses', + name: 'GPT-5 Nano', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5-pro', + provider: 'azure-openai-responses', + name: 'GPT-5 Pro', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.1', + provider: 'azure-openai-responses', + name: 'GPT-5.1', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.1-codex', + provider: 'azure-openai-responses', + name: 'GPT-5.1 Codex', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.1-codex-max', + provider: 'azure-openai-responses', + name: 'GPT-5.1 Codex Max', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.1-codex-mini', + provider: 'azure-openai-responses', + name: 'GPT-5.1 Codex Mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.2', + provider: 'azure-openai-responses', + name: 'GPT-5.2', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.2-chat-latest', + provider: 'azure-openai-responses', + name: 'GPT-5.2 Chat', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { levels: { medium: 'medium' }, budget: false }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/gpt-5.2-chat-latest', + }, + { + id: 'gpt-5.2-codex', + provider: 'azure-openai-responses', + name: 'GPT-5.2 Codex', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.2-pro', + provider: 'azure-openai-responses', + name: 'GPT-5.2 Pro', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/gpt-5.2-pro', + }, + { + id: 'gpt-5.3-chat-latest', + provider: 'azure-openai-responses', + name: 'GPT-5.3 Chat (latest)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + borrowedFrom: 'openai/gpt-5.3-chat-latest', + }, + { + id: 'gpt-5.3-codex', + provider: 'azure-openai-responses', + name: 'GPT-5.3 Codex', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.3-codex-spark', + provider: 'azure-openai-responses', + name: 'GPT-5.3 Codex Spark', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32000, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/gpt-5.3-codex-spark', + }, + { + id: 'gpt-5.4', + provider: 'azure-openai-responses', + name: 'GPT-5.4', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 5, + output: 22.5, + cacheRead: 0.5, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + }, + { + id: 'gpt-5.4-mini', + provider: 'azure-openai-responses', + name: 'GPT-5.4 Mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + }, + { + id: 'gpt-5.4-nano', + provider: 'azure-openai-responses', + name: 'GPT-5.4 Nano', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + }, + { + id: 'gpt-5.4-pro', + provider: 'azure-openai-responses', + name: 'GPT-5.4 Pro', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.5', + provider: 'azure-openai-responses', + name: 'GPT-5.5', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.5-pro', + provider: 'azure-openai-responses', + name: 'GPT-5.5 Pro', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/gpt-5.5-pro', + }, + { + id: 'gpt-5.6-luna', + provider: 'azure-openai-responses', + name: 'GPT-5.6 Luna', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.6-sol', + provider: 'azure-openai-responses', + name: 'GPT-5.6 Sol', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.5, + cacheWrite: 6.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 12.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-5.6-terra', + provider: 'azure-openai-responses', + name: 'GPT-5.6 Terra', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-6-astra', + provider: 'azure-openai-responses', + name: 'GPT-6 Astra', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-6-luna', + provider: 'azure-openai-responses', + name: 'GPT-6 Luna', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-6-sol', + provider: 'azure-openai-responses', + name: 'GPT-6 Sol', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-6.1-sol', + provider: 'azure-openai-responses', + name: 'GPT-6.1 Sol', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-chat-latest', + provider: 'azure-openai-responses', + name: 'GPT Chat Latest', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-image-1.5', + provider: 'azure-openai-responses', + name: 'GPT-Image-1.5', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 5, output: 32, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { supportsTemperature: false }, + }, + { + id: 'gpt-realtime-2.1', + provider: 'azure-openai-responses', + name: 'GPT-Realtime-2.1', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32000, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/gpt-realtime-2.1', + }, + { + id: 'grok-4-1-fast-non-reasoning', + provider: 'azure-openai-responses', + name: 'Grok 4.1 Fast (Non-Reasoning)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'grok-4-1-fast-reasoning', + provider: 'azure-openai-responses', + name: 'Grok 4.1 Fast (Reasoning)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'grok-4-20-non-reasoning', + provider: 'azure-openai-responses', + name: 'Grok 4.20 (Non-Reasoning)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 8192, + }, + { + id: 'grok-4-20-reasoning', + provider: 'azure-openai-responses', + name: 'Grok 4.20 (Reasoning)', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 8192, + }, + { + id: 'grok-4.6', + provider: 'azure-openai-responses', + name: 'Grok 4.6', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + }, + { + id: 'llama-3.3-70b-instruct', + provider: 'azure-openai-responses', + name: 'Llama-3.3-70B-Instruct', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 0.71, output: 0.71, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + }, + { + id: 'llama-4-maverick-17b-128e-instruct-fp8', + provider: 'azure-openai-responses', + name: 'Llama 4 Maverick 17B 128E Instruct FP8', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.25, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 16384, + }, + { + id: 'llama-4-scout-17b-16e-instruct', + provider: 'azure-openai-responses', + name: 'Llama 4 Scout 17B 16E Instruct', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 0.78, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'ministral-3b', + provider: 'azure-openai-responses', + name: 'Ministral 3B', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.04, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'mistral-medium-2505', + provider: 'azure-openai-responses', + name: 'Mistral Medium 3', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'mistral-small-2503', + provider: 'azure-openai-responses', + name: 'Mistral Small 3.1', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + }, + { + id: 'model-router', + provider: 'azure-openai-responses', + name: 'Model Router', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.14, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 16384, + }, + { + id: 'o1', + provider: 'azure-openai-responses', + name: 'o1', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + }, + { + id: 'o1-pro', + provider: 'azure-openai-responses', + name: 'o1-pro', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/o1-pro', + }, + { + id: 'o3', + provider: 'azure-openai-responses', + name: 'o3', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + }, + { + id: 'o3-mini', + provider: 'azure-openai-responses', + name: 'o3-mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + }, + { + id: 'o3-pro', + provider: 'azure-openai-responses', + name: 'o3-pro', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + borrowedFrom: 'openai/o3-pro', + }, + { + id: 'o4-mini', + provider: 'azure-openai-responses', + name: 'o4-mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsTemperature: false }, + }, + { + id: 'phi-4', + provider: 'azure-openai-responses', + name: 'Phi-4', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 0.125, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'phi-4-mini', + provider: 'azure-openai-responses', + name: 'Phi-4-mini', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: false, + cost: { input: 0.075, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'phi-4-mini-reasoning', + provider: 'azure-openai-responses', + name: 'Phi-4-mini-reasoning', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.075, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'phi-4-multimodal', + provider: 'azure-openai-responses', + name: 'Phi-4-multimodal', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text', 'image', 'audio'], + reasoning: false, + cost: { input: 0.08, output: 0.32, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + }, + { + id: 'phi-4-reasoning', + provider: 'azure-openai-responses', + name: 'Phi-4-reasoning', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.125, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 4096, + }, + { + id: 'phi-4-reasoning-plus', + provider: 'azure-openai-responses', + name: 'Phi-4-reasoning-plus', + api: 'azure-openai-responses', + baseUrl: '', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.125, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 4096, + }, +] diff --git a/packages/ai-models/src/providers/baseten.ts b/packages/ai-models/src/providers/baseten.ts new file mode 100644 index 0000000000..c10368489a --- /dev/null +++ b/packages/ai-models/src/providers/baseten.ts @@ -0,0 +1,666 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Baseten. */ +export const provider: ProviderRecord = { + id: 'baseten', + name: 'Baseten', + baseUrl: 'https://inference.baseten.co/v1', + apis: ['openai-completions'], + env: [['BASETEN_API_KEY']], +} + +/** Every Baseten model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-ai/DeepSeek-V3.1', + provider: 'baseten', + name: 'DeepSeek V3.1', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 164000, + maxTokens: 131000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsReasoningEffort: false, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Flash-0731', + provider: 'baseten', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.13, output: 0.26, cacheRead: 0.028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Pro', + provider: 'baseten', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1.74, output: 3.48, cacheRead: 0.145, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Pro-0813', + provider: 'baseten', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.32, output: 3.96, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4.1-Flash', + provider: 'baseten', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4.1-Flash-Fast', + provider: 'baseten', + name: 'deepseek-ai/DeepSeek-V4.1-Flash-Fast', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: true, + }, + }, + { + id: 'MiniMaxAI/MiniMax-M2.5', + provider: 'baseten', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204000, + maxTokens: 204000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'moonshotai/Kimi-K2.5', + provider: 'baseten', + name: 'Kimi K2.5', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 3, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 262000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'moonshotai/Kimi-K2.6', + provider: 'baseten', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 262000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'moonshotai/Kimi-K2.7-Code', + provider: 'baseten', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 262000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'moonshotai/Kimi-K3', + provider: 'baseten', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'nvidia/Nemotron-120B-A12B', + provider: 'baseten', + name: 'Nemotron Super', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 0.75, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 202800, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B', + provider: 'baseten', + name: 'Nemotron Ultra', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 202800, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'openai/gpt-oss-120b', + provider: 'baseten', + name: 'OpenAI GPT 120B', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128072, + maxTokens: 128072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'thinkingmachines/inkling', + provider: 'baseten', + name: 'Inkling', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 4.05, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'thinkingmachines/inkling-small', + provider: 'baseten', + name: 'Inkling Small', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.5, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'zai-org/GLM-4.7', + provider: 'baseten', + name: 'GLM 4.7', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 200000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'zai-org/GLM-5', + provider: 'baseten', + name: 'GLM 5', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 3.15, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 202800, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'zai-org/GLM-5.1', + provider: 'baseten', + name: 'GLM 5.1', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.3, output: 4.3, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 202800, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'zai-org/GLM-5.2', + provider: 'baseten', + name: 'GLM 5.2', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'zai-org/GLM-5.2-Fast', + provider: 'baseten', + name: 'GLM 5.2 Fast', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'zai-org/GLM-5.3', + provider: 'baseten', + name: 'GLM 5.3', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.14, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'zai-org/GLM-5.3-Fast', + provider: 'baseten', + name: 'GLM 5.3 Fast', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.1, output: 6.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsReasoningEffort: true, + }, + }, + { + id: 'zai-org/GLM-5.3-Flash', + provider: 'baseten', + name: 'GLM 5.3 Flash', + api: 'openai-completions', + baseUrl: 'https://inference.baseten.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsUsageInStreaming: true, + maxTokensField: 'max_tokens', + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/cerebras.ts b/packages/ai-models/src/providers/cerebras.ts new file mode 100644 index 0000000000..b8780733a8 --- /dev/null +++ b/packages/ai-models/src/providers/cerebras.ts @@ -0,0 +1,47 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Cerebras. */ +export const provider: ProviderRecord = { + id: 'cerebras', + name: 'Cerebras', + baseUrl: 'https://api.cerebras.ai/v1', + apis: ['openai-completions'], + env: [['CEREBRAS_API_KEY']], +} + +/** Every Cerebras model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'gpt-oss-120b', + provider: 'cerebras', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: 'https://api.cerebras.ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.35, output: 0.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 40960, + compat: { supportsStore: false, supportsDeveloperRole: false }, + }, + { + id: 'qwen-3.8-27b', + provider: 'cerebras', + name: 'Qwen3.8 27B', + api: 'openai-completions', + baseUrl: 'https://api.cerebras.ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.99, output: 1.49, cacheRead: 0.99, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 40960, + compat: { supportsStore: false, supportsDeveloperRole: false }, + }, +] diff --git a/packages/ai-models/src/providers/cloudflare-ai-gateway.ts b/packages/ai-models/src/providers/cloudflare-ai-gateway.ts new file mode 100644 index 0000000000..9ed3483330 --- /dev/null +++ b/packages/ai-models/src/providers/cloudflare-ai-gateway.ts @@ -0,0 +1,1694 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Cloudflare AI Gateway. */ +export const provider: ProviderRecord = { + id: 'cloudflare-ai-gateway', + name: 'Cloudflare AI Gateway', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + apis: ['anthropic-messages', 'openai-completions', 'openai-responses'], + env: [['CLOUDFLARE_API_KEY']], +} + +/** Every Cloudflare AI Gateway model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'alibaba/qwen3-max', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3 Max', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: false, + cost: { input: 1.2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'alibaba/qwen3.5-397b-a17b', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3.5 397B-A17B', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.6, output: 3.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'alibaba/qwen3.7-max', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1.25, output: 3.75, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'alibaba/qwen3.7-plus', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3.7 Plus', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.32, output: 1.28, cacheRead: 0.064, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'alibaba/qwen3.8-max', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3.8 Max', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'claude-fable-5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Fable 5', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-fable-5.1', + provider: 'cloudflare-ai-gateway', + name: 'Claude Fable 5.1', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-haiku-4.5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Haiku 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { sendSessionAffinityHeaders: true }, + }, + { + id: 'claude-opus-4.5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Opus 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { sendSessionAffinityHeaders: true }, + }, + { + id: 'claude-opus-4.6', + provider: 'cloudflare-ai-gateway', + name: 'Claude Opus 4.6', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true }, + }, + { + id: 'claude-opus-4.7', + provider: 'cloudflare-ai-gateway', + name: 'Claude Opus 4.7', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-opus-4.8', + provider: 'cloudflare-ai-gateway', + name: 'Claude Opus 4.8', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-opus-5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Opus 5', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-opus-5.5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Opus 5.5', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'claude-sonnet-4.5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Sonnet 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { sendSessionAffinityHeaders: true }, + }, + { + id: 'claude-sonnet-4.6', + provider: 'cloudflare-ai-gateway', + name: 'Claude Sonnet 4.6', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true }, + }, + { + id: 'claude-sonnet-5', + provider: 'cloudflare-ai-gateway', + name: 'Claude Sonnet 5', + api: 'anthropic-messages', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'deepseek/deepseek-v4-pro', + provider: 'cloudflare-ai-gateway', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.74, output: 3.48, cacheRead: 0.145, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 384000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'gpt-4.1', + provider: 'cloudflare-ai-gateway', + name: 'GPT-4.1', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-4.1-mini', + provider: 'cloudflare-ai-gateway', + name: 'GPT-4.1 mini', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-4.1-nano', + provider: 'cloudflare-ai-gateway', + name: 'GPT-4.1 nano', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 32768, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-4o', + provider: 'cloudflare-ai-gateway', + name: 'GPT-4o', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 1.25, output: 5, cacheRead: 0.625, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-4o-mini', + provider: 'cloudflare-ai-gateway', + name: 'GPT-4o mini', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-5', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5-mini', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5 Mini', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5-nano', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5 Nano', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.4, cacheRead: 0.005, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.1', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.1', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-5.4', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.4', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-5.4-mini', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.4 mini', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-5.4-nano', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.4 nano', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { sendSessionAffinityHeaders: false, supportsStrictMode: true }, + }, + { + id: 'gpt-5.4-pro', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.4 Pro', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.5', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.5', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.5-pro', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.5 Pro', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.6-luna', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.6 Luna', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.6-sol', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.6 Sol', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.25, cacheWrite: 3.125 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.6-terra', + provider: 'cloudflare-ai-gateway', + name: 'GPT-5.6 Terra', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-astra', + provider: 'cloudflare-ai-gateway', + name: 'GPT-6 Astra', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-luna', + provider: 'cloudflare-ai-gateway', + name: 'GPT-6 Luna', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-sol', + provider: 'cloudflare-ai-gateway', + name: 'GPT-6 Sol', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'moonshotai/kimi-k3', + provider: 'cloudflare-ai-gateway', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsTemperature: false, + }, + }, + { + id: 'o3', + provider: 'cloudflare-ai-gateway', + name: 'o3', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'o3-mini', + provider: 'cloudflare-ai-gateway', + name: 'o3-mini', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'o4-mini', + provider: 'cloudflare-ai-gateway', + name: 'o4-mini', + api: 'openai-responses', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + sendSessionAffinityHeaders: false, + supportsStrictMode: true, + supportsTemperature: false, + }, + }, + { + id: 'unbiased/pareto', + provider: 'cloudflare-ai-gateway', + name: 'Pareto', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 7.5, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'workers-ai/@cf/deepseek-ai/deepseek-v4-flash-0731', + provider: 'cloudflare-ai-gateway', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.44, output: 1.32, cacheRead: 0.014, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: + 'cloudflare-workers-ai/@cf/deepseek-ai/deepseek-v4-flash-0731', + }, + { + id: 'workers-ai/@cf/deepseek-ai/deepseek-v4-pro-0813', + provider: 'cloudflare-ai-gateway', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.32, output: 3.96, cacheRead: 0.044, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/deepseek-ai/deepseek-v4-pro-0813', + }, + { + id: 'workers-ai/@cf/google/gemma-4-26b-a4b-it', + provider: 'cloudflare-ai-gateway', + name: 'Gemma 4 26B A4B IT', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 16384, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/google/gemma-4-26b-a4b-it', + }, + { + id: 'workers-ai/@cf/ibm-granite/granite-4.0-h-micro', + provider: 'cloudflare-ai-gateway', + name: 'Granite 4.0 H Micro', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: false, + cost: { input: 0.017, output: 0.112, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131000, + maxTokens: 131000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/ibm-granite/granite-4.0-h-micro', + }, + { + id: 'workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast', + provider: 'cloudflare-ai-gateway', + name: 'Llama 3.3 70B Instruct fp8 Fast', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: false, + cost: { input: 0.293, output: 2.253, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 24000, + maxTokens: 24000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: + 'cloudflare-workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast', + }, + { + id: 'workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct', + provider: 'cloudflare-ai-gateway', + name: 'Llama 4 Scout 17B 16E Instruct', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.27, output: 0.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131000, + maxTokens: 16384, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: + 'cloudflare-workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct', + }, + { + id: 'workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct', + provider: 'cloudflare-ai-gateway', + name: 'Mistral Small 3.1 24B Instruct', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: false, + cost: { input: 0.351, output: 0.555, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: + 'cloudflare-workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct', + }, + { + id: 'workers-ai/@cf/moonshotai/kimi-k2.6', + provider: 'cloudflare-ai-gateway', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/moonshotai/kimi-k2.6', + }, + { + id: 'workers-ai/@cf/moonshotai/kimi-k2.7-code', + provider: 'cloudflare-ai-gateway', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/moonshotai/kimi-k2.7-code', + }, + { + id: 'workers-ai/@cf/nvidia/nemotron-3-120b-a12b', + provider: 'cloudflare-ai-gateway', + name: 'Nemotron 3 Super 120B', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/nvidia/nemotron-3-120b-a12b', + }, + { + id: 'workers-ai/@cf/openai/gpt-oss-120b', + provider: 'cloudflare-ai-gateway', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.35, output: 0.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/openai/gpt-oss-120b', + }, + { + id: 'workers-ai/@cf/openai/gpt-oss-20b', + provider: 'cloudflare-ai-gateway', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/openai/gpt-oss-20b', + }, + { + id: 'workers-ai/@cf/qwen/qwen3-30b-a3b-fp8', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3 30B A3b fp8', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.0509, output: 0.335, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/qwen/qwen3-30b-a3b-fp8', + }, + { + id: 'workers-ai/@cf/qwen/qwen3.8-27b', + provider: 'cloudflare-ai-gateway', + name: 'Qwen3.8 27B', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.45, output: 3.2, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/qwen/qwen3.8-27b', + }, + { + id: 'workers-ai/@cf/zai-org/glm-4.7-flash', + provider: 'cloudflare-ai-gateway', + name: 'GLM-4.7-Flash', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.0605, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/zai-org/glm-4.7-flash', + }, + { + id: 'workers-ai/@cf/zai-org/glm-5.2', + provider: 'cloudflare-ai-gateway', + name: 'Glm 5.2', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/zai-org/glm-5.2', + }, + { + id: 'workers-ai/@cf/zai-org/glm-5.3', + provider: 'cloudflare-ai-gateway', + name: 'Glm 5.3', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/zai-org/glm-5.3', + }, + { + id: 'workers-ai/@cf/zai-org/glm-5.3-flash', + provider: 'cloudflare-ai-gateway', + name: 'Glm 5.3 Flash', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + borrowedFrom: 'cloudflare-workers-ai/@cf/zai-org/glm-5.3-flash', + }, + { + id: 'xai/grok-4.20-0309-non-reasoning', + provider: 'cloudflare-ai-gateway', + name: 'Grok 4.20 (Non-Reasoning)', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 30000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'xai/grok-4.20-0309-reasoning', + provider: 'cloudflare-ai-gateway', + name: 'Grok 4.20 (Reasoning)', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 30000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'xai/grok-4.3', + provider: 'cloudflare-ai-gateway', + name: 'Grok 4.3', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 30000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'xai/grok-4.5', + provider: 'cloudflare-ai-gateway', + name: 'Grok 4.5', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'xai/grok-4.6', + provider: 'cloudflare-ai-gateway', + name: 'Grok 4.6', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, + { + id: 'xai/grok-4.7', + provider: 'cloudflare-ai-gateway', + name: 'Grok 4.7', + api: 'openai-completions', + baseUrl: + 'https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { + sendSessionAffinityHeaders: true, + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + }, + }, +] diff --git a/packages/ai-models/src/providers/cloudflare-workers-ai.ts b/packages/ai-models/src/providers/cloudflare-workers-ai.ts new file mode 100644 index 0000000000..233b64196d --- /dev/null +++ b/packages/ai-models/src/providers/cloudflare-workers-ai.ts @@ -0,0 +1,627 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Cloudflare Workers AI. */ +export const provider: ProviderRecord = { + id: 'cloudflare-workers-ai', + name: 'Cloudflare Workers AI', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + apis: ['openai-completions'], + env: [['CLOUDFLARE_API_KEY']], +} + +/** Every Cloudflare Workers AI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: '@cf/aisingapore/gemma-sea-lion-v4-27b-it', + provider: 'cloudflare-workers-ai', + name: 'Gemma Sea Lion V4 27B It', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.351, output: 0.555, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/deepseek-ai/deepseek-r1-distill-qwen-32b', + provider: 'cloudflare-workers-ai', + name: 'Deepseek R1 Distill Qwen 32B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.497, output: 4.881, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 80000, + maxTokens: 80000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: '@cf/deepseek-ai/deepseek-v4-flash-0731', + provider: 'cloudflare-workers-ai', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.44, output: 1.32, cacheRead: 0.014, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: '@cf/deepseek-ai/deepseek-v4-pro-0813', + provider: 'cloudflare-workers-ai', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.32, output: 3.96, cacheRead: 0.044, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: '@cf/google/gemma-4-26b-a4b-it', + provider: 'cloudflare-workers-ai', + name: 'Gemma 4 26B A4B IT', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/ibm-granite/granite-4.0-h-micro', + provider: 'cloudflare-workers-ai', + name: 'Granite 4.0 H Micro', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.017, output: 0.112, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131000, + maxTokens: 131000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-3.1-8b-instruct-fp8', + provider: 'cloudflare-workers-ai', + name: 'Llama 3.1 8B Instruct fp8', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.152, output: 0.287, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 32000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-3.2-11b-vision-instruct', + provider: 'cloudflare-workers-ai', + name: 'Llama 3.2 11B Vision Instruct', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.0485, output: 0.676, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-3.2-1b-instruct', + provider: 'cloudflare-workers-ai', + name: 'Llama 3.2 1B Instruct', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.027, output: 0.201, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 60000, + maxTokens: 60000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-3.2-3b-instruct', + provider: 'cloudflare-workers-ai', + name: 'Llama 3.2 3B Instruct', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.0509, output: 0.335, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 80000, + maxTokens: 80000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-3.3-70b-instruct-fp8-fast', + provider: 'cloudflare-workers-ai', + name: 'Llama 3.3 70B Instruct fp8 Fast', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.293, output: 2.253, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 24000, + maxTokens: 24000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-4-scout-17b-16e-instruct', + provider: 'cloudflare-workers-ai', + name: 'Llama 4 Scout 17B 16E Instruct', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.27, output: 0.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131000, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/meta/llama-guard-3-8b', + provider: 'cloudflare-workers-ai', + name: 'Llama Guard 3 8B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.484, output: 0.03, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/mistralai/mistral-small-3.1-24b-instruct', + provider: 'cloudflare-workers-ai', + name: 'Mistral Small 3.1 24B Instruct', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.351, output: 0.555, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/moonshotai/kimi-k2.6', + provider: 'cloudflare-workers-ai', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: '@cf/moonshotai/kimi-k2.7-code', + provider: 'cloudflare-workers-ai', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/nvidia/nemotron-3-120b-a12b', + provider: 'cloudflare-workers-ai', + name: 'Nemotron 3 Super 120B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/openai/gpt-oss-120b', + provider: 'cloudflare-workers-ai', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.35, output: 0.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/openai/gpt-oss-20b', + provider: 'cloudflare-workers-ai', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/qwen/qwen2.5-coder-32b-instruct', + provider: 'cloudflare-workers-ai', + name: 'Qwen2.5 Coder 32B Instruct', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.66, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/qwen/qwen3-30b-a3b-fp8', + provider: 'cloudflare-workers-ai', + name: 'Qwen3 30B A3b fp8', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.0509, output: 0.335, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/qwen/qwen3.8-27b', + provider: 'cloudflare-workers-ai', + name: 'Qwen3.8 27B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.45, output: 3.2, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/qwen/qwq-32b', + provider: 'cloudflare-workers-ai', + name: 'Qwq 32B', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.66, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 24000, + maxTokens: 24000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/zai-org/glm-4.7-flash', + provider: 'cloudflare-workers-ai', + name: 'GLM-4.7-Flash', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.0605, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: '@cf/zai-org/glm-5.2', + provider: 'cloudflare-workers-ai', + name: 'Glm 5.2', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/zai-org/glm-5.3', + provider: 'cloudflare-workers-ai', + name: 'Glm 5.3', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, + { + id: '@cf/zai-org/glm-5.3-flash', + provider: 'cloudflare-workers-ai', + name: 'Glm 5.3 Flash', + api: 'openai-completions', + baseUrl: + 'https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + supportsLongCacheRetention: false, + sendSessionAffinityHeaders: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/deepseek.ts b/packages/ai-models/src/providers/deepseek.ts new file mode 100644 index 0000000000..299ceab4ee --- /dev/null +++ b/packages/ai-models/src/providers/deepseek.ts @@ -0,0 +1,107 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** DeepSeek. */ +export const provider: ProviderRecord = { + id: 'deepseek', + name: 'DeepSeek', + baseUrl: 'https://api.deepseek.com', + apis: ['openai-completions'], + env: [['DEEPSEEK_API_KEY']], +} + +/** Every DeepSeek model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-flash', + provider: 'deepseek', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://api.deepseek.com', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + supportsStrictMode: true, + }, + }, + { + id: 'deepseek-v4-flash', + provider: 'deepseek', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: 'https://api.deepseek.com', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + supportsStrictMode: true, + }, + }, + { + id: 'deepseek-v4-flash-vision-exp', + provider: 'deepseek', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'openai-completions', + baseUrl: 'https://api.deepseek.com', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + supportsStrictMode: true, + }, + }, + { + id: 'deepseek-v4-pro', + provider: 'deepseek', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://api.deepseek.com', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + supportsStrictMode: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/fireworks.ts b/packages/ai-models/src/providers/fireworks.ts new file mode 100644 index 0000000000..59ca334091 --- /dev/null +++ b/packages/ai-models/src/providers/fireworks.ts @@ -0,0 +1,855 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Fireworks AI. */ +export const provider: ProviderRecord = { + id: 'fireworks', + name: 'Fireworks AI', + baseUrl: 'https://api.fireworks.ai/inference/v1', + apis: ['anthropic-messages', 'openai-completions'], + env: [['FIREWORKS_API_KEY']], +} + +/** Every Fireworks AI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'accounts/fireworks/models/deepseek-v4-flash-0731', + provider: 'fireworks', + name: 'DeepSeek V4 Flash 0731', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.06, output: 0.18, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4-Flash-0731', + }, + { + id: 'accounts/fireworks/models/deepseek-v4-flash-vision-exp', + provider: 'fireworks', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'deepseek/deepseek-v4-flash-vision-exp', + }, + { + id: 'accounts/fireworks/models/deepseek-v4-pro', + provider: 'fireworks', + name: 'DeepSeek V4 Pro', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'deepseek/deepseek-v4-pro', + }, + { + id: 'accounts/fireworks/models/deepseek-v4-pro-0813', + provider: 'fireworks', + name: 'DeepSeek V4 Pro 0813', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.3, output: 2.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + }, + { + id: 'accounts/fireworks/models/deepseek-v4p1-flash', + provider: 'fireworks', + name: 'DeepSeek V4.1 Flash', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.22, output: 0.66, cacheRead: 0.007, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/models/ember-1', + provider: 'fireworks', + name: 'Ember-1', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/models/glm-5p2', + provider: 'fireworks', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'zai/glm-5.2', + }, + { + id: 'accounts/fireworks/models/glm-5p3', + provider: 'fireworks', + name: 'GLM 5.3', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048573, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/models/glm-5p3-flash', + provider: 'fireworks', + name: 'GLM 5.3 Flash', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048573, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/models/gpt-oss-120b', + provider: 'fireworks', + name: 'GPT OSS 120B', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/models/inkling', + provider: 'fireworks', + name: 'Inkling', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + }, + }, + { + id: 'accounts/fireworks/models/kimi-k2p6', + provider: 'fireworks', + name: 'Kimi K2.6', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + }, + borrowedFrom: 'moonshotai/kimi-k2.6', + }, + { + id: 'accounts/fireworks/models/kimi-k2p7-code', + provider: 'fireworks', + name: 'Kimi K2.7 Code', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + supportsTemperature: false, + }, + borrowedFrom: 'moonshotai/kimi-k2.7-code', + }, + { + id: 'accounts/fireworks/models/kimi-k3', + provider: 'fireworks', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'accounts/fireworks/models/minimax-m2p7', + provider: 'fireworks', + name: 'MiniMax-M2.7', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'minimax/MiniMax-M2.7', + }, + { + id: 'accounts/fireworks/models/minimax-m3', + provider: 'fireworks', + name: 'MiniMax-M3', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 512000, + maxTokens: 512000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/models/muse-glimmer-30b', + provider: 'fireworks', + name: 'Muse Glimmer 30B', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.2, output: 0.8, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'empiriolabs/muse-glimmer-30b', + }, + { + id: 'accounts/fireworks/models/nemotron-3-ultra-nvfp4', + provider: 'fireworks', + name: 'Nemotron 3 Ultra 550B A55B', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 128000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + }, + }, + { + id: 'accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b', + provider: 'fireworks', + name: 'Nemotron 3.5 Lightning 30B A3B', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.05, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + }, + }, + { + id: 'accounts/fireworks/models/qwen3p7-plus', + provider: 'fireworks', + name: 'Qwen3.7 Plus', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { + input: 0.4, + output: 1.6, + cacheRead: 0.04, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 256000, + input: 1.2, + output: 4.8, + cacheRead: 0.12, + cacheWrite: 1.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'alibaba/qwen3.7-plus', + }, + { + id: 'accounts/fireworks/models/qwen3p8-2p4t-a95b', + provider: 'fireworks', + name: 'Qwen3.8 2.4T A95B', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/models/qwen3p8-max', + provider: 'fireworks', + name: 'Qwen3.8 Max', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/routers/deepseek-flash-latest', + provider: 'fireworks', + name: 'DeepSeek Flash Latest', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.22, output: 0.66, cacheRead: 0.007, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/routers/deepseek-pro-latest', + provider: 'fireworks', + name: 'DeepSeek: DeepSeek Pro Latest', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.123, output: 3.5, cacheRead: 0.123, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 393216, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + borrowedFrom: 'kilo/~deepseek/deepseek-pro-latest', + }, + { + id: 'accounts/fireworks/routers/glm-5p2-fast', + provider: 'fireworks', + name: 'GLM 5.2 Fast', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'baseten/zai-org/GLM-5.2-Fast', + }, + { + id: 'accounts/fireworks/routers/glm-5p3-fast', + provider: 'fireworks', + name: 'GLM 5.3 Fast', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.1, output: 6.6, cacheRead: 0.39, cacheWrite: 0 }, + contextWindow: 1048572, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/routers/glm-fast-latest', + provider: 'fireworks', + name: 'GLM 5.3 Fast (Latest)', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.1, output: 6.6, cacheRead: 0.39, cacheWrite: 0 }, + contextWindow: 1048572, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/routers/glm-flash-latest', + provider: 'fireworks', + name: 'GLM Flash Latest (GLM 5.3 Flash)', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048573, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/routers/glm-latest', + provider: 'fireworks', + name: 'GLM Latest', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048573, + maxTokens: 262144, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'accounts/fireworks/routers/kimi-fast-latest', + provider: 'fireworks', + name: 'Kimi Fast Latest', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 4.5, output: 22.5, cacheRead: 0.45, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + supportsTemperature: false, + }, + }, + { + id: 'accounts/fireworks/routers/kimi-k3-fast', + provider: 'fireworks', + name: 'Kimi K3 Fast', + api: 'openai-completions', + baseUrl: 'https://api.fireworks.ai/inference/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 4.5, output: 22.5, cacheRead: 0.45, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'accounts/fireworks/routers/kimi-latest', + provider: 'fireworks', + name: 'Kimi Latest', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + supportsTemperature: false, + }, + }, + { + id: 'accounts/fireworks/routers/minimax-latest', + provider: 'fireworks', + name: 'MiniMax Latest', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 512000, + maxTokens: 512000, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'accounts/fireworks/routers/qwen-max-latest', + provider: 'fireworks', + name: 'Qwen Max Latest (Qwen3.8 Max)', + api: 'anthropic-messages', + baseUrl: 'https://api.fireworks.ai/inference', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + sendSessionAffinityHeaders: true, + supportsLongCacheRetention: false, + allowEmptySignature: true, + supportsEagerToolInputStreaming: false, + supportsCacheControlOnTools: false, + }, + }, +] diff --git a/packages/ai-models/src/providers/google-vertex.ts b/packages/ai-models/src/providers/google-vertex.ts new file mode 100644 index 0000000000..d96a0c766a --- /dev/null +++ b/packages/ai-models/src/providers/google-vertex.ts @@ -0,0 +1,717 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Google Vertex AI. */ +export const provider: ProviderRecord = { + id: 'google-vertex', + name: 'Google Vertex AI', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + apis: ['google-vertex'], + env: [ + ['GOOGLE_CLOUD_API_KEY'], + [ + 'GOOGLE_APPLICATION_CREDENTIALS', + 'GOOGLE_CLOUD_PROJECT', + 'GOOGLE_CLOUD_LOCATION', + ], + [ + 'GOOGLE_APPLICATION_CREDENTIALS', + 'GCLOUD_PROJECT', + 'GOOGLE_CLOUD_LOCATION', + ], + ], +} + +/** Every Google Vertex AI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-ai/deepseek-v3.1-maas', + provider: 'google-vertex', + name: 'DeepSeek V3.1', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 1.7, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 32768, + }, + { + id: 'deepseek-ai/deepseek-v3.2-maas', + provider: 'google-vertex', + name: 'DeepSeek V3.2', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.56, output: 1.68, cacheRead: 0.056, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 65536, + }, + { + id: 'gemini-2.5-flash', + provider: 'google-vertex', + name: 'Gemini 2.5 Flash', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-2.5-flash-image', + provider: 'google-vertex', + name: 'Nano Banana', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.3, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + }, + { + id: 'gemini-2.5-flash-lite', + provider: 'google-vertex', + name: 'Gemini 2.5 Flash-Lite', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65535, + }, + { + id: 'gemini-2.5-pro', + provider: 'google-vertex', + name: 'Gemini 2.5 Pro', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 1.25, + output: 10, + cacheRead: 0.125, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3-flash-preview', + provider: 'google-vertex', + name: 'Gemini 3 Flash Preview', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3-pro-image', + provider: 'google-vertex', + name: 'Nano Banana Pro', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 120, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 32768, + }, + { + id: 'gemini-3.1-flash-image', + provider: 'google-vertex', + name: 'Nano Banana 2', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'video', 'document'], + reasoning: { levels: { minimal: 'minimal', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 60, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + }, + { + id: 'gemini-3.1-flash-lite', + provider: 'google-vertex', + name: 'Gemini 3.1 Flash Lite', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-flash-lite-preview', + provider: 'google-vertex', + name: 'Gemini 3.1 Flash Lite Preview', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-pro-preview', + provider: 'google-vertex', + name: 'Gemini 3.1 Pro Preview', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-pro-preview-customtools', + provider: 'google-vertex', + name: 'Gemini 3.1 Pro Preview Custom Tools', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-flash', + provider: 'google-vertex', + name: 'Gemini 3.5 Flash', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-flash-lite', + provider: 'google-vertex', + name: 'Gemini 3.5 Flash Lite', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.6-flash', + provider: 'google-vertex', + name: 'Gemini 3.6 Flash', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.7-flash', + provider: 'google-vertex', + name: 'Gemini 3.7 Flash', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.8-flash', + provider: 'google-vertex', + name: 'Gemini 3.8 Flash', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-flash-latest', + provider: 'google-vertex', + name: 'Gemini Flash Latest', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-flash-lite-latest', + provider: 'google-vertex', + name: 'Gemini Flash-Lite Latest', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'meta/llama-3.3-70b-instruct-maas', + provider: 'google-vertex', + name: 'Llama 3.3 70B Instruct', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: false, + cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + { + id: 'meta/llama-4-maverick-17b-128e-instruct-maas', + provider: 'google-vertex', + name: 'Llama 4 Maverick 17B 128E Instruct', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.35, output: 1.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 8192, + }, + { + id: 'moonshotai/kimi-k2-thinking-maas', + provider: 'google-vertex', + name: 'Kimi K2 Thinking', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.5, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'openai/gpt-oss-120b-maas', + provider: 'google-vertex', + name: 'GPT OSS 120B', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.09, output: 0.36, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + }, + { + id: 'openai/gpt-oss-20b-maas', + provider: 'google-vertex', + name: 'GPT OSS 20B', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.07, output: 0.25, cacheRead: 0.007, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + }, + { + id: 'qwen/qwen3-235b-a22b-instruct-2507-maas', + provider: 'google-vertex', + name: 'Qwen3 235B A22B Instruct', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.22, output: 0.88, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + }, + { + id: 'xai/grok-4.1-fast-non-reasoning', + provider: 'google-vertex', + name: 'Grok 4.1 Fast', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 30000, + }, + { + id: 'xai/grok-4.1-fast-reasoning', + provider: 'google-vertex', + name: 'Grok 4.1 Fast (Reasoning)', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 30000, + }, + { + id: 'xai/grok-4.20-non-reasoning', + provider: 'google-vertex', + name: 'Grok 4.20 (Non-Reasoning)', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: false, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 30000, + }, + { + id: 'xai/grok-4.20-reasoning', + provider: 'google-vertex', + name: 'Grok 4.20 (Reasoning)', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 30000, + }, + { + id: 'xai/grok-4.3', + provider: 'google-vertex', + name: 'Grok 4.3', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 200000, + maxTokens: 30000, + }, + { + id: 'xai/grok-4.6', + provider: 'google-vertex', + name: 'Grok 4.6', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 524288, + maxTokens: 500000, + }, + { + id: 'zai-org/glm-4.7-maas', + provider: 'google-vertex', + name: 'GLM-4.7', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + }, + { + id: 'zai-org/glm-5-maas', + provider: 'google-vertex', + name: 'GLM-5', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + }, + { + id: 'zai-org/glm-5.2-maas', + provider: 'google-vertex', + name: 'GLM-5.2', + api: 'google-vertex', + baseUrl: 'https://{location}-aiplatform.googleapis.com', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.14, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 64000, + }, +] diff --git a/packages/ai-models/src/providers/google.ts b/packages/ai-models/src/providers/google.ts new file mode 100644 index 0000000000..f902cbe826 --- /dev/null +++ b/packages/ai-models/src/providers/google.ts @@ -0,0 +1,592 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Google. */ +export const provider: ProviderRecord = { + id: 'google', + name: 'Google', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + apis: ['google-generative-ai'], + env: [['GEMINI_API_KEY']], +} + +/** Every Google model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deep-research-max-preview-04-2026', + provider: 'google', + name: 'Deep Research Max Preview (Apr-21-2026)', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 131072, + maxTokens: 65536, + }, + { + id: 'deep-research-preview-04-2026', + provider: 'google', + name: 'Deep Research Preview (Apr-21-2026)', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 131072, + maxTokens: 65536, + }, + { + id: 'gemini-2.5-computer-use-preview-10-2025', + provider: 'google', + name: 'Gemini 2.5 Computer Use Preview 10-2025', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1.25, + output: 10, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 15, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 128000, + maxTokens: 64000, + }, + { + id: 'gemini-2.5-flash', + provider: 'google', + name: 'Gemini 2.5 Flash', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-2.5-flash-image', + provider: 'google', + name: 'Nano Banana', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 30, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + }, + { + id: 'gemini-2.5-flash-lite', + provider: 'google', + name: 'Gemini 2.5 Flash-Lite', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-2.5-pro', + provider: 'google', + name: 'Gemini 2.5 Pro', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 1.25, + output: 10, + cacheRead: 0.125, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3-flash-preview', + provider: 'google', + name: 'Gemini 3 Flash Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3-pro-image', + provider: 'google', + name: 'Nano Banana Pro', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 2, output: 120, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 32768, + }, + { + id: 'gemini-3-pro-image-preview', + provider: 'google', + name: 'Nano Banana Pro', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 120, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + }, + { + id: 'gemini-3.1-flash-image', + provider: 'google', + name: 'Nano Banana 2', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'video', 'document'], + reasoning: { levels: { minimal: 'minimal', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 60, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + }, + { + id: 'gemini-3.1-flash-image-preview', + provider: 'google', + name: 'Nano Banana 2', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'document'], + reasoning: { levels: { minimal: 'minimal', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 60, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-flash-lite', + provider: 'google', + name: 'Gemini 3.1 Flash Lite', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-flash-lite-image', + provider: 'google', + name: 'Nano Banana 2 Lite', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { levels: { minimal: 'minimal', high: 'high' }, budget: false }, + cost: { input: 0.25, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 4096, + }, + { + id: 'gemini-3.1-flash-lite-preview', + provider: 'google', + name: 'Gemini 3.1 Flash Lite Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-flash-live-preview', + provider: 'google', + name: 'Gemini 3.1 Flash Live Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-pro-preview', + provider: 'google', + name: 'Gemini 3.1 Pro Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-pro-preview-customtools', + provider: 'google', + name: 'Gemini 3.1 Pro Preview Custom Tools', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-flash', + provider: 'google', + name: 'Gemini 3.5 Flash', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-flash-lite', + provider: 'google', + name: 'Gemini 3.5 Flash Lite', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-live-translate-preview', + provider: 'google', + name: 'Gemini 3.5 Live Translate Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['audio'], + reasoning: false, + cost: { input: 3.5, output: 21, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16384, + maxTokens: 32768, + }, + { + id: 'gemini-3.6-flash', + provider: 'google', + name: 'Gemini 3.6 Flash', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.7-flash', + provider: 'google', + name: 'Gemini 3.7 Flash', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.8-flash', + provider: 'google', + name: 'Gemini 3.8 Flash', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-flash-latest', + provider: 'google', + name: 'Gemini Flash Latest', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-flash-lite-latest', + provider: 'google', + name: 'Gemini Flash-Lite Latest', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemma-4-26b-a4b-it', + provider: 'google', + name: 'Gemma 4 26B A4B IT', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + }, + { + id: 'gemma-4-31b-it', + provider: 'google', + name: 'Gemma 4 31B IT', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + }, + { + id: 'lyria-3-clip-preview', + provider: 'google', + name: 'Lyria 3 Clip Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'lyria-3-pro-preview', + provider: 'google', + name: 'Lyria 3 Pro Preview', + api: 'google-generative-ai', + baseUrl: 'https://generativelanguage.googleapis.com/v1beta', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, +] diff --git a/packages/ai-models/src/providers/groq.ts b/packages/ai-models/src/providers/groq.ts new file mode 100644 index 0000000000..a2378eb4b2 --- /dev/null +++ b/packages/ai-models/src/providers/groq.ts @@ -0,0 +1,183 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Groq. */ +export const provider: ProviderRecord = { + id: 'groq', + name: 'Groq', + baseUrl: 'https://api.groq.com/openai/v1', + apis: ['openai-completions'], + env: [['GROQ_API_KEY']], +} + +/** Every Groq model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'allam-2-7b', + provider: 'groq', + name: 'ALLaM-2-7b', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 4096, + maxTokens: 4096, + compat: { supportsStrictMode: true }, + }, + { + id: 'groq/compound', + provider: 'groq', + name: 'Compound', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { supportsStrictMode: true }, + }, + { + id: 'groq/compound-mini', + provider: 'groq', + name: 'Compound Mini', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { supportsStrictMode: true }, + }, + { + id: 'llama-3.1-8b-instant', + provider: 'groq', + name: 'Llama 3.1 8B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.05, output: 0.08, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { supportsStrictMode: true }, + }, + { + id: 'llama-3.3-70b-versatile', + provider: 'groq', + name: 'Llama 3.3 70B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.59, output: 0.79, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { supportsStrictMode: true }, + }, + { + id: 'meta-llama/llama-prompt-guard-2-22m', + provider: 'groq', + name: 'Llama Prompt Guard 2 22M', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.03, output: 0.03, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 512, + maxTokens: 512, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'meta-llama/llama-prompt-guard-2-86m', + provider: 'groq', + name: 'Prompt Guard 2 86M', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.04, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 512, + maxTokens: 512, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-oss-120b', + provider: 'groq', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + compat: { supportsStrictMode: true }, + }, + { + id: 'openai/gpt-oss-20b', + provider: 'groq', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + compat: { supportsStrictMode: true }, + }, + { + id: 'openai/gpt-oss-safeguard-20b', + provider: 'groq', + name: 'Safety GPT OSS 20B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.075, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + compat: { supportsStrictMode: true }, + }, + { + id: 'qwen/qwen3.6-27b', + provider: 'groq', + name: 'Qwen3.6 27B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'default' }, budget: false }, + cost: { input: 0.6, output: 3, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, + { + id: 'qwen/qwen3.8-27b', + provider: 'groq', + name: 'Qwen3.8 27B', + api: 'openai-completions', + baseUrl: 'https://api.groq.com/openai/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.8, output: 4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131042, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, +] diff --git a/packages/ai-models/src/providers/huggingface.ts b/packages/ai-models/src/providers/huggingface.ts new file mode 100644 index 0000000000..f4ffd674ca --- /dev/null +++ b/packages/ai-models/src/providers/huggingface.ts @@ -0,0 +1,1474 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Hugging Face. */ +export const provider: ProviderRecord = { + id: 'huggingface', + name: 'Hugging Face', + baseUrl: 'https://router.huggingface.co/v1', + apis: ['openai-completions'], + env: [['HF_TOKEN']], +} + +/** Every Hugging Face model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-ai/DeepSeek-R1', + provider: 'huggingface', + name: 'DeepSeek-R1', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.7, output: 2.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 64000, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-R1-0528', + provider: 'huggingface', + name: 'DeepSeek-R1-0528', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 3, output: 5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 163840, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V3', + provider: 'huggingface', + name: 'DeepSeek-V3', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 1.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 64000, + maxTokens: 8192, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V3-0324', + provider: 'huggingface', + name: 'DeepSeek V3 0324', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.27, output: 1.12, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 163840, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V3.1', + provider: 'huggingface', + name: 'DeepSeek-V3.1', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.27, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V3.2', + provider: 'huggingface', + name: 'DeepSeek-V3.2', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.28, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Flash', + provider: 'huggingface', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Flash-0731', + provider: 'huggingface', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Flash-Vision-Exp', + provider: 'huggingface', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.44, output: 1.32, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Pro', + provider: 'huggingface', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 393216, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Pro-0813', + provider: 'huggingface', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.32, output: 3.96, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'deepseek-ai/DeepSeek-V4.1-Flash', + provider: 'huggingface', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'google/gemma-3-12b-it', + provider: 'huggingface', + name: 'Gemma 3 12B IT', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.05, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'google/gemma-3-27b-it', + provider: 'huggingface', + name: 'Gemma 3 27B IT', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.08, output: 0.16, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'google/gemma-3-4b-it', + provider: 'huggingface', + name: 'Gemma 3 4B IT', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.05, output: 0.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'google/gemma-4-26B-A4B-it', + provider: 'huggingface', + name: 'Gemma 4 26B A4B IT', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.13, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'google/gemma-4-31B-it', + provider: 'huggingface', + name: 'Gemma 4 31B IT', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.14, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'meta-llama/Llama-3.1-8B-Instruct', + provider: 'huggingface', + name: 'Llama-3.1-8B-Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.06, output: 0.06, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 4096, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'meta-llama/Llama-3.3-70B-Instruct', + provider: 'huggingface', + name: 'Llama-3.3-70B-Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.59, output: 0.79, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 4096, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'MiniMaxAI/MiniMax-M2', + provider: 'huggingface', + name: 'MiniMax-M2', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'MiniMaxAI/MiniMax-M2.1', + provider: 'huggingface', + name: 'MiniMax-M2.1', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'MiniMaxAI/MiniMax-M2.5', + provider: 'huggingface', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'MiniMaxAI/MiniMax-M2.7', + provider: 'huggingface', + name: 'MiniMax-M2.7', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'MiniMaxAI/MiniMax-M3', + provider: 'huggingface', + name: 'MiniMax-M3', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 512000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'moonshotai/Kimi-K2-Instruct', + provider: 'huggingface', + name: 'Kimi-K2-Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'moonshotai/Kimi-K2-Instruct-0905', + provider: 'huggingface', + name: 'Kimi-K2-Instruct-0905', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'moonshotai/Kimi-K2-Thinking', + provider: 'huggingface', + name: 'Kimi-K2-Thinking', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'moonshotai/Kimi-K2.5', + provider: 'huggingface', + name: 'Kimi-K2.5', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'moonshotai/Kimi-K2.6', + provider: 'huggingface', + name: 'Kimi-K2.6', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'moonshotai/Kimi-K2.7-Code', + provider: 'huggingface', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'moonshotai/Kimi-K3', + provider: 'huggingface', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-oss-120b', + provider: 'huggingface', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 0.69, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'openai/gpt-oss-20b', + provider: 'huggingface', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.1, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen2.5-Coder-32B-Instruct', + provider: 'huggingface', + name: 'Qwen2.5-Coder-32B-Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.06, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-235B-A22B', + provider: 'huggingface', + name: 'Qwen3 235B-A22B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.2, output: 0.8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 40960, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-235B-A22B-Instruct-2507', + provider: 'huggingface', + name: 'Qwen3 235B-A22B Instruct 2507', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.855, output: 2.565, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-235B-A22B-Thinking-2507', + provider: 'huggingface', + name: 'Qwen3-235B-A22B-Thinking-2507', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-30B-A3B', + provider: 'huggingface', + name: 'Qwen3 30B A3B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.12, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 40960, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-32B', + provider: 'huggingface', + name: 'Qwen3 32B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.29, output: 0.59, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-Coder-30B-A3B-Instruct', + provider: 'huggingface', + name: 'Qwen3-Coder 30B-A3B Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.07, output: 0.26, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct', + provider: 'huggingface', + name: 'Qwen3-Coder-480B-A35B-Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 2, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 66536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-Coder-Next', + provider: 'huggingface', + name: 'Qwen3-Coder-Next', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.2, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-Next-80B-A3B-Instruct', + provider: 'huggingface', + name: 'Qwen3-Next-80B-A3B-Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.25, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 66536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-Next-80B-A3B-Thinking', + provider: 'huggingface', + name: 'Qwen3-Next-80B-A3B-Thinking', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-VL-235B-A22B-Instruct', + provider: 'huggingface', + name: 'Qwen3 VL 235B A22B Instruct', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.3, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3-VL-235B-A22B-Thinking', + provider: 'huggingface', + name: 'Qwen3 VL 235B A22B Thinking', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.98, output: 3.95, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.5-122B-A10B', + provider: 'huggingface', + name: 'Qwen3.5 122B-A10B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.4, output: 3.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.5-27B', + provider: 'huggingface', + name: 'Qwen3.5 27B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.5-35B-A3B', + provider: 'huggingface', + name: 'Qwen3.5 35B-A3B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.5-397B-A17B', + provider: 'huggingface', + name: 'Qwen3.5-397B-A17B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.6, output: 3.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'Qwen/Qwen3.5-9B', + provider: 'huggingface', + name: 'Qwen3.5 9B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.17, output: 0.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.6-27B', + provider: 'huggingface', + name: 'Qwen3.6 27B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.47, output: 3.19, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.6-35B-A3B', + provider: 'huggingface', + name: 'Qwen3.6 35B-A3B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 0.95, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.8-2.4T-A95B', + provider: 'huggingface', + name: 'Qwen3.8 2.4T A95B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2.5, output: 6.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'Qwen/Qwen3.8-27B', + provider: 'huggingface', + name: 'Qwen3.8 27B', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.4, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'stepfun-ai/Step-3.5-Flash', + provider: 'huggingface', + name: 'Step 3.5 Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'stepfun-ai/Step-3.7-Flash', + provider: 'huggingface', + name: 'Step 3.7 Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2, output: 1.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'tencent/Hy3', + provider: 'huggingface', + name: 'Hy3', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.14, output: 0.58, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'tencent/Hy4-preview', + provider: 'huggingface', + name: 'Hy4 preview', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.834, output: 2.501, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'thinkingmachines/Inkling', + provider: 'huggingface', + name: 'Inkling', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1, output: 4.05, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'thinkingmachines/Inkling-Small', + provider: 'huggingface', + name: 'Inkling Small', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 1048576, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'XiaomiMiMo/MiMo-V2-Flash', + provider: 'huggingface', + name: 'MiMo-V2-Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 4096, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'XiaomiMiMo/MiMo-V2.5', + provider: 'huggingface', + name: 'MiMo-V2.5', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'XiaomiMiMo/MiMo-V2.5-Pro', + provider: 'huggingface', + name: 'MiMo-V2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-4.5', + provider: 'huggingface', + name: 'GLM-4.5', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-4.5-Air', + provider: 'huggingface', + name: 'GLM-4.5-Air', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.13, output: 0.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-4.5V', + provider: 'huggingface', + name: 'GLM-4.5V', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 1.8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-4.6', + provider: 'huggingface', + name: 'GLM-4.6', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.55, output: 2.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-4.6V-Flash', + provider: 'huggingface', + name: 'GLM-4.6V-Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-4.7', + provider: 'huggingface', + name: 'GLM-4.7', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-4.7-Flash', + provider: 'huggingface', + name: 'GLM-4.7-Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-5', + provider: 'huggingface', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-5.1', + provider: 'huggingface', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-5.2', + provider: 'huggingface', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-5.3', + provider: 'huggingface', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, + { + id: 'zai-org/GLM-5.3-Flash', + provider: 'huggingface', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://router.huggingface.co/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { supportsStrictMode: true, supportsDeveloperRole: false }, + }, +] diff --git a/packages/ai-models/src/providers/kimi-coding.ts b/packages/ai-models/src/providers/kimi-coding.ts new file mode 100644 index 0000000000..2eee92c69f --- /dev/null +++ b/packages/ai-models/src/providers/kimi-coding.ts @@ -0,0 +1,85 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Kimi For Coding. */ +export const provider: ProviderRecord = { + id: 'kimi-coding', + name: 'Kimi For Coding', + baseUrl: 'https://api.kimi.com/coding', + apis: ['anthropic-messages'], + env: [['KIMI_API_KEY']], +} + +/** Every Kimi For Coding model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'k3', + provider: 'kimi-coding', + name: 'Kimi K3', + api: 'anthropic-messages', + baseUrl: 'https://api.kimi.com/coding', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { forceAdaptiveThinking: true, supportsTemperature: false }, + }, + { + id: 'k3-256k', + provider: 'kimi-coding', + name: 'Kimi K3-256K', + api: 'anthropic-messages', + baseUrl: 'https://api.kimi.com/coding', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { forceAdaptiveThinking: true, supportsTemperature: false }, + }, + { + id: 'kimi-for-coding', + provider: 'kimi-coding', + name: 'kimi-for-coding', + api: 'anthropic-messages', + baseUrl: 'https://api.kimi.com/coding', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 32768, + compat: { forceAdaptiveThinking: true }, + }, + { + id: 'kimi-for-coding-highspeed', + provider: 'kimi-coding', + name: 'Kimi For Coding HighSpeed', + api: 'anthropic-messages', + baseUrl: 'https://api.kimi.com/coding', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { forceAdaptiveThinking: true, supportsTemperature: false }, + }, +] diff --git a/packages/ai-models/src/providers/meta.ts b/packages/ai-models/src/providers/meta.ts new file mode 100644 index 0000000000..96892e5b4e --- /dev/null +++ b/packages/ai-models/src/providers/meta.ts @@ -0,0 +1,121 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Meta. */ +export const provider: ProviderRecord = { + id: 'meta', + name: 'Meta', + baseUrl: 'https://api.meta.ai/v1', + apis: ['openai-responses'], + env: [['META_API_KEY']], +} + +/** Every Meta model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'muse-spark-1.1', + provider: 'meta', + name: 'Muse Spark 1.1', + api: 'openai-responses', + baseUrl: 'https://api.meta.ai/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + }, + { + id: 'muse-spark-1.2', + provider: 'meta', + name: 'Muse Spark 1.2', + api: 'openai-responses', + baseUrl: 'https://api.meta.ai/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + }, + { + id: 'muse-spark-1.2-contributor', + provider: 'meta', + name: 'Muse Spark 1.2 Contributor', + api: 'openai-responses', + baseUrl: 'https://api.meta.ai/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + }, + { + id: 'muse-spark-1.3', + provider: 'meta', + name: 'Muse Spark 1.3', + api: 'openai-responses', + baseUrl: 'https://api.meta.ai/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + }, + { + id: 'muse-spark-1.3-contributor', + provider: 'meta', + name: 'Muse Spark 1.3 Contributor', + api: 'openai-responses', + baseUrl: 'https://api.meta.ai/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + }, +] diff --git a/packages/ai-models/src/providers/minimax-cn.ts b/packages/ai-models/src/providers/minimax-cn.ts new file mode 100644 index 0000000000..f14d96a7ce --- /dev/null +++ b/packages/ai-models/src/providers/minimax-cn.ts @@ -0,0 +1,167 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** MiniMax (China). */ +export const provider: ProviderRecord = { + id: 'minimax-cn', + name: 'MiniMax (China)', + baseUrl: 'https://api.minimaxi.com/anthropic', + apis: ['anthropic-messages'], + env: [['MINIMAX_CN_API_KEY']], +} + +/** Every MiniMax (China) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'MiniMax-M2', + provider: 'minimax-cn', + name: 'MiniMax-M2', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.1', + provider: 'minimax-cn', + name: 'MiniMax-M2.1', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.5', + provider: 'minimax-cn', + name: 'MiniMax-M2.5', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.5-highspeed', + provider: 'minimax-cn', + name: 'MiniMax-M2.5-highspeed', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.7', + provider: 'minimax-cn', + name: 'MiniMax-M2.7', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.7-highspeed', + provider: 'minimax-cn', + name: 'MiniMax-M2.7-highspeed', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M3', + provider: 'minimax-cn', + name: 'MiniMax-M3', + api: 'anthropic-messages', + baseUrl: 'https://api.minimaxi.com/anthropic', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.3, + output: 1.2, + cacheRead: 0.06, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 512000, + input: 0.6, + output: 2.4, + cacheRead: 0.12, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 512000, + }, +] diff --git a/packages/ai-models/src/providers/minimax.ts b/packages/ai-models/src/providers/minimax.ts new file mode 100644 index 0000000000..e0de332fe8 --- /dev/null +++ b/packages/ai-models/src/providers/minimax.ts @@ -0,0 +1,167 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** MiniMax. */ +export const provider: ProviderRecord = { + id: 'minimax', + name: 'MiniMax', + baseUrl: 'https://api.minimax.io/anthropic', + apis: ['anthropic-messages'], + env: [['MINIMAX_API_KEY']], +} + +/** Every MiniMax model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'MiniMax-M2', + provider: 'minimax', + name: 'MiniMax-M2', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.1', + provider: 'minimax', + name: 'MiniMax-M2.1', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.5', + provider: 'minimax', + name: 'MiniMax-M2.5', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.5-highspeed', + provider: 'minimax', + name: 'MiniMax-M2.5-highspeed', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.7', + provider: 'minimax', + name: 'MiniMax-M2.7', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M2.7-highspeed', + provider: 'minimax', + name: 'MiniMax-M2.7-highspeed', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'MiniMax-M3', + provider: 'minimax', + name: 'MiniMax-M3', + api: 'anthropic-messages', + baseUrl: 'https://api.minimax.io/anthropic', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.3, + output: 1.2, + cacheRead: 0.06, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 512000, + input: 0.6, + output: 2.4, + cacheRead: 0.12, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 512000, + }, +] diff --git a/packages/ai-models/src/providers/mistral.ts b/packages/ai-models/src/providers/mistral.ts new file mode 100644 index 0000000000..823018144d --- /dev/null +++ b/packages/ai-models/src/providers/mistral.ts @@ -0,0 +1,449 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Mistral. */ +export const provider: ProviderRecord = { + id: 'mistral', + name: 'Mistral', + baseUrl: 'https://api.mistral.ai', + apis: ['mistral-conversations'], + env: [['MISTRAL_API_KEY']], +} + +/** Every Mistral model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'codestral-latest', + provider: 'mistral', + name: 'Codestral (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 0.9, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 4096, + }, + { + id: 'devstral-2512', + provider: 'mistral', + name: 'Devstral 2', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'devstral-latest', + provider: 'mistral', + name: 'Devstral 2', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'devstral-medium-2507', + provider: 'mistral', + name: 'Devstral Medium', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'devstral-medium-latest', + provider: 'mistral', + name: 'Devstral 2 (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'devstral-small-2505', + provider: 'mistral', + name: 'Devstral Small 2505', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'devstral-small-2507', + provider: 'mistral', + name: 'Devstral Small', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'labs-devstral-small-2512', + provider: 'mistral', + name: 'Devstral Small 2', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + }, + { + id: 'magistral-medium-latest', + provider: 'mistral', + name: 'Magistral Medium (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + provider: 'mistral', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + id: 'magistral-small', + name: 'Magistral Small', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'ministral-3b-latest', + provider: 'mistral', + name: 'Ministral 3B (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.04, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'ministral-8b-latest', + provider: 'mistral', + name: 'Ministral 8B (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'mistral-large-2411', + provider: 'mistral', + name: 'Mistral Large 2.1', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + }, + { + id: 'mistral-large-2512', + provider: 'mistral', + name: 'Mistral Large 3', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'mistral-large-latest', + provider: 'mistral', + name: 'Mistral Large (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'mistral-medium-2505', + provider: 'mistral', + name: 'Mistral Medium 3', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + }, + { + id: 'mistral-medium-2508', + provider: 'mistral', + name: 'Mistral Medium 3.1', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'mistral-medium-2604', + provider: 'mistral', + name: 'Mistral Medium 3.5', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'mistral-medium-3.5', + provider: 'mistral', + name: 'Mistral Medium 3.5', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.75, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32768, + borrowedFrom: 'nano-gpt/mistralai/mistral-medium-3.5', + }, + { + id: 'mistral-medium-latest', + provider: 'mistral', + name: 'Mistral Medium (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + }, + { + id: 'mistral-nemo', + provider: 'mistral', + name: 'Mistral Nemo', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'mistral-small-2506', + provider: 'mistral', + name: 'Mistral Small 3.2', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + }, + { + id: 'mistral-small-2603', + provider: 'mistral', + name: 'Mistral Small 4', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + }, + { + id: 'mistral-small-latest', + provider: 'mistral', + name: 'Mistral Small (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + }, + { + id: 'open-mistral-7b', + provider: 'mistral', + name: 'Mistral 7B', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.25, output: 0.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8000, + maxTokens: 8000, + }, + { + id: 'open-mistral-nemo', + provider: 'mistral', + name: 'Open Mistral Nemo', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'open-mixtral-8x22b', + provider: 'mistral', + name: 'Mixtral 8x22B', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 64000, + maxTokens: 64000, + }, + { + id: 'open-mixtral-8x7b', + provider: 'mistral', + name: 'Mixtral 8x7B', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: false, + cost: { input: 0.7, output: 0.7, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 32000, + }, + { + id: 'pixtral-12b', + provider: 'mistral', + name: 'Pixtral 12B', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'pixtral-large-latest', + provider: 'mistral', + name: 'Pixtral Large (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + }, + { + id: 'voxtral-mini-latest', + provider: 'mistral', + name: 'Voxtral Mini (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['audio'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { supportsTemperature: false }, + }, + { + id: 'voxtral-small-latest', + provider: 'mistral', + name: 'Voxtral Small (latest)', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 32000, + }, + { + id: 'zai-glm-5-2', + provider: 'mistral', + name: 'GLM-5.2', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.14, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + }, + { + id: 'zai-glm-5-3', + provider: 'mistral', + name: 'GLM-5.3', + api: 'mistral-conversations', + baseUrl: 'https://api.mistral.ai', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.14, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + }, +] diff --git a/packages/ai-models/src/providers/moonshotai-cn.ts b/packages/ai-models/src/providers/moonshotai-cn.ts new file mode 100644 index 0000000000..85ec803478 --- /dev/null +++ b/packages/ai-models/src/providers/moonshotai-cn.ts @@ -0,0 +1,127 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Moonshot AI (China). */ +export const provider: ProviderRecord = { + id: 'moonshotai-cn', + name: 'Moonshot AI (China)', + baseUrl: 'https://api.moonshot.cn/v1', + apis: ['openai-completions'], + env: [['MOONSHOT_API_KEY']], +} + +/** Every Moonshot AI (China) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'kimi-k2.6', + provider: 'moonshotai-cn', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.cn/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k2.7-code', + provider: 'moonshotai-cn', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.cn/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k2.7-code-highspeed', + provider: 'moonshotai-cn', + name: 'Kimi K2.7 Code HighSpeed', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.cn/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k3', + provider: 'moonshotai-cn', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.cn/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/moonshotai.ts b/packages/ai-models/src/providers/moonshotai.ts new file mode 100644 index 0000000000..97103c5eff --- /dev/null +++ b/packages/ai-models/src/providers/moonshotai.ts @@ -0,0 +1,127 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Moonshot AI. */ +export const provider: ProviderRecord = { + id: 'moonshotai', + name: 'Moonshot AI', + baseUrl: 'https://api.moonshot.ai/v1', + apis: ['openai-completions'], + env: [['MOONSHOT_API_KEY']], +} + +/** Every Moonshot AI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'kimi-k2.6', + provider: 'moonshotai', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k2.7-code', + provider: 'moonshotai', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k2.7-code-highspeed', + provider: 'moonshotai', + name: 'Kimi K2.7 Code HighSpeed', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k3', + provider: 'moonshotai', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://api.moonshot.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + supportsStrictMode: false, + supportsMidConvoSystemMessages: true, + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/nvidia.ts b/packages/ai-models/src/providers/nvidia.ts new file mode 100644 index 0000000000..a479925c8d --- /dev/null +++ b/packages/ai-models/src/providers/nvidia.ts @@ -0,0 +1,1960 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** NVIDIA. */ +export const provider: ProviderRecord = { + id: 'nvidia', + name: 'NVIDIA', + baseUrl: 'https://integrate.api.nvidia.com/v1', + apis: ['openai-completions'], + env: [['NVIDIA_API_KEY']], +} + +/** Every NVIDIA model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'abacusai/dracarys-llama-3.1-70b-instruct', + provider: 'nvidia', + name: 'dracarys-llama-3.1-70b-instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'baai/bge-m3', + provider: 'nvidia', + name: 'BGE M3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1024, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'bytedance/seed-oss-36b-instruct', + provider: 'nvidia', + name: 'ByteDance-Seed/Seed-OSS-36B-Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 262000, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'deepseek-ai/deepseek-v4-flash', + provider: 'nvidia', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 393216, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/deepseek-v4-flash-0731', + provider: 'nvidia', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/deepseek-v4-pro', + provider: 'nvidia', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 393216, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/deepseek-v4-pro-0813', + provider: 'nvidia', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'google/gemma-2-2b-it', + provider: 'nvidia', + name: 'Gemma 2 2b It', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'google/gemma-3-12b-it', + provider: 'nvidia', + name: 'Gemma 3 12B IT', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'google/gemma-3-4b-it', + provider: 'nvidia', + name: 'Gemma 3 4B IT', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'google/gemma-3n-e2b-it', + provider: 'nvidia', + name: 'Gemma 3n E2b It', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'google/gemma-3n-e4b-it', + provider: 'nvidia', + name: 'Gemma 3n E4b It', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'google/gemma-4-31b-it', + provider: 'nvidia', + name: 'Gemma-4-31B-IT', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'google/google-paligemma', + provider: 'nvidia', + name: 'paligemma', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/esm2-650m', + provider: 'nvidia', + name: 'esm2-650m', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/esmfold', + provider: 'nvidia', + name: 'esmfold', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.1-70b-instruct', + provider: 'nvidia', + name: 'Llama 3.1 70b Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.1-8b-instruct', + provider: 'nvidia', + name: 'Llama 3.1 8B Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.2-11b-vision-instruct', + provider: 'nvidia', + name: 'Llama 3.2 11b Vision Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.2-1b-instruct', + provider: 'nvidia', + name: 'Llama 3.2 1b Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.2-3b-instruct', + provider: 'nvidia', + name: 'Llama 3.2 3B Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32000, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.2-90b-vision-instruct', + provider: 'nvidia', + name: 'Llama-3.2-90B-Vision-Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-3.3-70b-instruct', + provider: 'nvidia', + name: 'Llama 3.3 70b Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-4-maverick-17b-128e-instruct', + provider: 'nvidia', + name: 'Llama 4 Maverick 17b 128e Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/llama-guard-4-12b', + provider: 'nvidia', + name: 'Llama Guard 4 12B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'meta/muse-glimmer-30b', + provider: 'nvidia', + name: 'Muse Glimmer 30B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'microsoft/phi-4-mini-instruct', + provider: 'nvidia', + name: 'Phi-4-Mini', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'microsoft/phi-4-multimodal-instruct', + provider: 'nvidia', + name: 'Phi 4 Multimodal', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'minimaxai/minimax-m2.7', + provider: 'nvidia', + name: 'MiniMax-M2.7', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'minimaxai/minimax-m3', + provider: 'nvidia', + name: 'MiniMax-M3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/magistral-small-2506', + provider: 'nvidia', + name: 'Magistral Small 2506', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/ministral-14b-instruct-2512', + provider: 'nvidia', + name: 'Ministral 3 14B Instruct 2512', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mistral-7b-instruct-v0.3', + provider: 'nvidia', + name: 'Mistral-7B-Instruct-v0.3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 65536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mistral-large-3-675b-instruct-2512', + provider: 'nvidia', + name: 'Mistral Large 3 675B Instruct 2512', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mistral-medium-3-instruct', + provider: 'nvidia', + name: 'Mistral Medium 3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mistral-medium-3.5-128b', + provider: 'nvidia', + name: 'Mistral Medium 3.5', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mistral-nemotron', + provider: 'nvidia', + name: 'mistral-nemotron', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mistral-small-4-119b-2603', + provider: 'nvidia', + name: 'mistral-small-4-119b-2603', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mixtral-8x22b-instruct', + provider: 'nvidia', + name: 'Mistral: Mixtral 8x22B Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 13108, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'mistralai/mixtral-8x7b-instruct', + provider: 'nvidia', + name: 'Mistral: Mixtral 8x7B Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'moonshotai/kimi-k2.6', + provider: 'nvidia', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'moonshotai/kimi-k3', + provider: 'nvidia', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/active-speaker-detection', + provider: 'nvidia', + name: 'Active Speaker Detection', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['video'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/bevformer', + provider: 'nvidia', + name: 'bevformer', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['video'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/cosmos-reason2-8b', + provider: 'nvidia', + name: 'Cosmos Reason2 8B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/gliner-pii', + provider: 'nvidia', + name: 'gliner-pii', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/llama-3.1-nemotron-70b-instruct', + provider: 'nvidia', + name: 'Llama 3.1 Nemotron 70B Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/llama-3.1-nemotron-nano-8b-v1', + provider: 'nvidia', + name: 'Llama 3.1 Nemotron Nano 8B v1', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/llama-3.1-nemotron-nano-vl-8b-v1', + provider: 'nvidia', + name: 'Llama 3.1 Nemotron Nano VL 8B v1', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/llama-3.1-nemotron-safety-guard-8b-v3', + provider: 'nvidia', + name: 'llama-3.1-nemotron-safety-guard-8b-v3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/llama-3.1-nemotron-ultra-253b-v1', + provider: 'nvidia', + name: 'Llama 3.1 Nemotron Ultra 253B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1', + provider: 'nvidia', + name: 'Llama 3.3 Nemotron Super 49B v1', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/llama-3.3-nemotron-super-49b-v1.5', + provider: 'nvidia', + name: 'Llama 3.3 Nemotron Super 49B v1.5', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-3-content-safety', + provider: 'nvidia', + name: 'nemotron-3-content-safety', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/nemotron-3-nano-30b-a3b', + provider: 'nvidia', + name: 'nemotron-3-nano-30b-a3b', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning', + provider: 'nvidia', + name: 'Nemotron 3 Nano Omni', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 65536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-3-super-120b-a12b', + provider: 'nvidia', + name: 'Nemotron 3 Super', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.2, output: 0.8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-3-ultra-550b-a55b', + provider: 'nvidia', + name: 'Nemotron 3 Ultra 550B A55B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-3.5-lightning-30b-a3b', + provider: 'nvidia', + name: 'Nemotron 3.5 Lightning 30B A3B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-content-safety-reasoning-4b', + provider: 'nvidia', + name: 'nemotron-content-safety-reasoning-4b', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/nemotron-mini-4b-instruct', + provider: 'nvidia', + name: 'nemotron-mini-4b-instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-nano-12b-v2-vl', + provider: 'nvidia', + name: 'Nemotron Nano 12B v2 VL', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nemotron-voicechat', + provider: 'nvidia', + name: 'nemotron-voicechat', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/nvidia-nemotron-nano-9b-v2', + provider: 'nvidia', + name: 'nvidia-nemotron-nano-9b-v2', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/riva-translate-4b-instruct-v1.1', + provider: 'nvidia', + name: 'riva-translate-4b-instruct-v1_1', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/sparsedrive', + provider: 'nvidia', + name: 'sparsedrive', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['video'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/streampetr', + provider: 'nvidia', + name: 'streampetr', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['video'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/studiovoice', + provider: 'nvidia', + name: 'studiovoice', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/synthetic-video-detector', + provider: 'nvidia', + name: 'synthetic-video-detector', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['video'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/usdcode', + provider: 'nvidia', + name: 'usdcode', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'nvidia/usdvalidate', + provider: 'nvidia', + name: 'usdvalidate', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-oss-20b', + provider: 'nvidia', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'poolside/laguna-xs-2.1', + provider: 'nvidia', + name: 'Laguna XS 2.1', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'qwen/qwen2.5-coder-32b-instruct', + provider: 'nvidia', + name: 'Qwen2.5 Coder 32b Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'qwen/qwen3-coder-480b-a35b-instruct', + provider: 'nvidia', + name: 'Qwen3 Coder 480B A35B Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 66536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'qwen/qwen3-next-80b-a3b-instruct', + provider: 'nvidia', + name: 'Qwen3-Next-80B-A3B-Instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'qwen/qwen3.5-122b-a10b', + provider: 'nvidia', + name: 'Qwen3.5 122B-A10B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'qwen/qwen3.5-397b-a17b', + provider: 'nvidia', + name: 'Qwen3.5-397B-A17B', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'sarvamai/sarvam-m', + provider: 'nvidia', + name: 'sarvam-m', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'stepfun-ai/step-3.5-flash', + provider: 'nvidia', + name: 'Step 3.5 Flash', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'stepfun-ai/step-3.7-flash', + provider: 'nvidia', + name: 'Step 3.7 Flash', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'thinkingmachines/inkling', + provider: 'nvidia', + name: 'Inkling', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 16384, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'upstage/solar-10.7b-instruct', + provider: 'nvidia', + name: 'solar-10.7b-instruct', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + }, + }, + { + id: 'z-ai/glm-5.2', + provider: 'nvidia', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'z-ai/glm-5.3', + provider: 'nvidia', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'z-ai/glm-5.3-flash', + provider: 'nvidia', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://integrate.api.nvidia.com/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + headers: { 'NVCF-POLL-SECONDS': '3600' }, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/openai.ts b/packages/ai-models/src/providers/openai.ts new file mode 100644 index 0000000000..bde9daa35e --- /dev/null +++ b/packages/ai-models/src/providers/openai.ts @@ -0,0 +1,1059 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** OpenAI. */ +export const provider: ProviderRecord = { + id: 'openai', + name: 'OpenAI', + baseUrl: 'https://api.openai.com/v1', + apis: ['openai-responses'], + env: [['OPENAI_API_KEY']], +} + +/** Every OpenAI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'chatgpt-image-latest', + provider: 'openai', + name: 'chatgpt-image-latest', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-3.5-turbo', + provider: 'openai', + name: 'GPT-3.5-turbo', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16385, + maxTokens: 4096, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4', + provider: 'openai', + name: 'GPT-4', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text'], + reasoning: false, + cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 8192, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4-turbo', + provider: 'openai', + name: 'GPT-4 Turbo', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4.1', + provider: 'openai', + name: 'GPT-4.1', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4.1-mini', + provider: 'openai', + name: 'GPT-4.1 mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4.1-nano', + provider: 'openai', + name: 'GPT-4.1 nano', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4o', + provider: 'openai', + name: 'GPT-4o', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4o-2024-05-13', + provider: 'openai', + name: 'GPT-4o (2024-05-13)', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4o-2024-08-06', + provider: 'openai', + name: 'GPT-4o (2024-08-06)', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4o-2024-11-20', + provider: 'openai', + name: 'GPT-4o (2024-11-20)', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-4o-mini', + provider: 'openai', + name: 'GPT-4o mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5', + provider: 'openai', + name: 'GPT-5', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5-chat-latest', + provider: 'openai', + name: 'gpt-5-chat-latest', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 1.125, output: 9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + borrowedFrom: 'jiekou/gpt-5-chat-latest', + }, + { + id: 'gpt-5-mini', + provider: 'openai', + name: 'GPT-5 Mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5-nano', + provider: 'openai', + name: 'GPT-5 Nano', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.4, cacheRead: 0.005, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5-pro', + provider: 'openai', + name: 'GPT-5 Pro', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 272000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.1', + provider: 'openai', + name: 'GPT-5.1', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.2', + provider: 'openai', + name: 'GPT-5.2', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.2-chat-latest', + provider: 'openai', + name: 'GPT-5.2 Chat', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { levels: { medium: 'medium' }, budget: false }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.2-pro', + provider: 'openai', + name: 'GPT-5.2 Pro', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.3-chat-latest', + provider: 'openai', + name: 'GPT-5.3 Chat (latest)', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.3-codex', + provider: 'openai', + name: 'GPT-5.3 Codex', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.3-codex-spark', + provider: 'openai', + name: 'GPT-5.3 Codex Spark', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.4', + provider: 'openai', + name: 'GPT-5.4', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 5, + output: 22.5, + cacheRead: 0.5, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.4-mini', + provider: 'openai', + name: 'GPT-5.4 mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.4-nano', + provider: 'openai', + name: 'GPT-5.4 nano', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true }, + }, + { + id: 'gpt-5.4-pro', + provider: 'openai', + name: 'GPT-5.4 Pro', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.5', + provider: 'openai', + name: 'GPT-5.5', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.5-pro', + provider: 'openai', + name: 'GPT-5.5 Pro', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.6', + provider: 'openai', + name: 'GPT-5.6', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.6-luna', + provider: 'openai', + name: 'GPT-5.6 Luna', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.6-sol', + provider: 'openai', + name: 'GPT-5.6 Sol', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-5.6-terra', + provider: 'openai', + name: 'GPT-5.6 Terra', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-6-astra', + provider: 'openai', + name: 'GPT-6 Astra', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-6-luna', + provider: 'openai', + name: 'GPT-6 Luna', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-6-sol', + provider: 'openai', + name: 'GPT-6 Sol', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-6.1-sol', + provider: 'openai', + name: 'GPT-6.1 Sol', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-daybreak-blue-latest', + provider: 'openai', + name: 'Daybreak Blue', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-daybreak-red-latest', + provider: 'openai', + name: 'Daybreak Red', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 12.5, output: 75, cacheRead: 1.25, cacheWrite: 15.625 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-image-1-mini', + provider: 'openai', + name: 'gpt-image-1-mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-image-1.5', + provider: 'openai', + name: 'gpt-image-1.5', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'gpt-realtime-2.1', + provider: 'openai', + name: 'GPT-Realtime-2.1', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'o1', + provider: 'openai', + name: 'o1', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'o1-pro', + provider: 'openai', + name: 'o1-pro', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'o3', + provider: 'openai', + name: 'o3', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'o3-mini', + provider: 'openai', + name: 'o3-mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'o3-pro', + provider: 'openai', + name: 'o3-pro', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, + { + id: 'o4-mini', + provider: 'openai', + name: 'o4-mini', + api: 'openai-responses', + baseUrl: 'https://api.openai.com/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { supportsStrictMode: true, supportsTemperature: false }, + }, +] diff --git a/packages/ai-models/src/providers/opencode-go.ts b/packages/ai-models/src/providers/opencode-go.ts new file mode 100644 index 0000000000..48b91c0bd1 --- /dev/null +++ b/packages/ai-models/src/providers/opencode-go.ts @@ -0,0 +1,860 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** OpenCode Go. */ +export const provider: ProviderRecord = { + id: 'opencode-go', + name: 'OpenCode Go', + baseUrl: 'https://opencode.ai/zen/go/v1', + apis: ['anthropic-messages', 'openai-completions', 'openai-responses'], + env: [['OPENCODE_API_KEY']], +} + +/** Every OpenCode Go model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-v4-flash', + provider: 'opencode-go', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4-flash-vision-exp', + provider: 'opencode-go', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4-pro', + provider: 'opencode-go', + name: 'DeepSeek V4 Pro (New)', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 0.66, output: 1.98, cacheRead: 0.022, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4.1-flash', + provider: 'opencode-go', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.1', + provider: 'opencode-go', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'zai/glm-5.1', + }, + { + id: 'glm-5.2', + provider: 'opencode-go', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.3', + provider: 'opencode-go', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.3-flash', + provider: 'opencode-go', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'gpt-5.6-luna', + provider: 'opencode-go', + name: 'GPT-5.6 Luna', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-luna', + provider: 'opencode-go', + name: 'GPT-6 Luna', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'grok-4.5', + provider: 'opencode-go', + name: 'Grok 4.5', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'grok-4.6', + provider: 'opencode-go', + name: 'Grok 4.6', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'grok-4.7', + provider: 'opencode-go', + name: 'Grok 4.7', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'hy3', + provider: 'opencode-go', + name: 'Hy3', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.14, output: 0.58, cacheRead: 0.035, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'hy4-preview', + provider: 'opencode-go', + name: 'Hy4 preview', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.834, output: 2.501, cacheRead: 0.042, cacheWrite: 0 }, + contextWindow: 1024000, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'kimi-k2.6', + provider: 'opencode-go', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'kimi-k2.7-code', + provider: 'opencode-go', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'kimi-k3', + provider: 'opencode-go', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { max: 'max' }, budget: false }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'longcat-2.0', + provider: 'opencode-go', + name: 'LongCat-2.0', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'longcat-2.5-preview-free', + provider: 'opencode-go', + name: 'LongCat 2.5 Preview Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2.5', + provider: 'opencode-go', + name: 'MiMo V2.5', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2.5-pro', + provider: 'opencode-go', + name: 'MiMo V2.5 Pro', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2.6-flash', + provider: 'opencode-go', + name: 'MiMo-V2.6-Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2.6-pro', + provider: 'opencode-go', + name: 'MiMo-V2.6-Pro', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'minimax-m2.7', + provider: 'opencode-go', + name: 'MiniMax-M2.7', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen/go', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'minimax-m3', + provider: 'opencode-go', + name: 'MiniMax-M3', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen/go', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.3, + output: 1.2, + cacheRead: 0.06, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 512000, + input: 0.6, + output: 2.4, + cacheRead: 0.12, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 131072, + }, + { + id: 'muse-spark-1.2-contributor', + provider: 'opencode-go', + name: 'Muse Spark 1.2 Contributor', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'muse-spark-1.3-contributor', + provider: 'opencode-go', + name: 'Muse Spark 1.3 Contributor', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'qwen3.6-plus', + provider: 'opencode-go', + name: 'Qwen3.6 Plus', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.5, + output: 3, + cacheRead: 0.05, + cacheWrite: 0.625, + tiers: [ + { + inputTokensAbove: 256000, + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 2.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'qwen3.7-max', + provider: 'opencode-go', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'qwen3.7-plus', + provider: 'opencode-go', + name: 'Qwen3.7 Plus', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.4, + output: 1.6, + cacheRead: 0.04, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 256000, + input: 1.2, + output: 4.8, + cacheRead: 0.12, + cacheWrite: 1.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'qwen3.8-flash', + provider: 'opencode-go', + name: 'Qwen3.8 Flash', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen/go', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0.2 }, + contextWindow: 1000000, + maxTokens: 131072, + }, + { + id: 'qwen3.8-max', + provider: 'opencode-go', + name: 'Qwen3.8 Max', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'space-bunny-free', + provider: 'opencode-go', + name: 'Space Bunny Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/go/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 524288, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/opencode.ts b/packages/ai-models/src/providers/opencode.ts new file mode 100644 index 0000000000..39f311741f --- /dev/null +++ b/packages/ai-models/src/providers/opencode.ts @@ -0,0 +1,2686 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** OpenCode Zen. */ +export const provider: ProviderRecord = { + id: 'opencode', + name: 'OpenCode Zen', + baseUrl: 'https://opencode.ai/zen/v1', + apis: [ + 'anthropic-messages', + 'google-generative-ai', + 'openai-completions', + 'openai-responses', + ], + env: [['OPENCODE_API_KEY']], +} + +/** Every OpenCode Zen model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'big-pickle', + provider: 'opencode', + name: 'Big Pickle', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 32000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'claude-3-5-haiku', + provider: 'opencode', + name: 'Claude Haiku 3.5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.8, output: 4, cacheRead: 0.08, cacheWrite: 1 }, + contextWindow: 200000, + maxTokens: 8192, + }, + { + id: 'claude-fable-5', + provider: 'opencode', + name: 'Claude Fable 5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-fable-5-1', + provider: 'opencode', + name: 'Claude Fable 5.1', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-haiku-4-5', + provider: 'opencode', + name: 'Claude Haiku 4.5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'claude-opus-4-1', + provider: 'opencode', + name: 'Claude Opus 4.1', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, + contextWindow: 200000, + maxTokens: 32000, + }, + { + id: 'claude-opus-4-5', + provider: 'opencode', + name: 'Claude Opus 4.5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + }, + { + id: 'claude-opus-4-6', + provider: 'opencode', + name: 'Claude Opus 4.6', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { forceAdaptiveThinking: true }, + }, + { + id: 'claude-opus-4-7', + provider: 'opencode', + name: 'Claude Opus 4.7', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-opus-4-8', + provider: 'opencode', + name: 'Claude Opus 4.8', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-opus-5', + provider: 'opencode', + name: 'Claude Opus 5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-opus-5-5', + provider: 'opencode', + name: 'Claude Opus 5.5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-sonnet-4', + provider: 'opencode', + name: 'Claude Sonnet 4', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200000, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + }, + { + id: 'claude-sonnet-4-5', + provider: 'opencode', + name: 'Claude Sonnet 4.5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200000, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + }, + { + id: 'claude-sonnet-4-6', + provider: 'opencode', + name: 'Claude Sonnet 4.6', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { forceAdaptiveThinking: true }, + }, + { + id: 'claude-sonnet-5', + provider: 'opencode', + name: 'Claude Sonnet 5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'claude-sonnet-5-5', + provider: 'opencode', + name: 'Claude Sonnet 5.5', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { supportsTemperature: false, forceAdaptiveThinking: true }, + }, + { + id: 'deepseek-v4-flash', + provider: 'opencode', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4-flash-free', + provider: 'opencode', + name: 'DeepSeek V4 Flash Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4-flash-vision-exp', + provider: 'opencode', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4-pro', + provider: 'opencode', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.74, output: 3.84, cacheRead: 0.145, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-v4.1-flash', + provider: 'opencode', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + thinkingFormat: 'deepseek', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'gemini-3-flash', + provider: 'opencode', + name: 'Gemini 3 Flash', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3-pro', + provider: 'opencode', + name: 'Gemini 3 Pro', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.1-pro', + provider: 'opencode', + name: 'Gemini 3.1 Pro Preview', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-flash', + provider: 'opencode', + name: 'Gemini 3.5 Flash', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.5-flash-lite', + provider: 'opencode', + name: 'Gemini 3.5 Flash Lite', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.6-flash', + provider: 'opencode', + name: 'Gemini 3.6 Flash', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.7-flash', + provider: 'opencode', + name: 'Gemini 3.7 Flash', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'gemini-3.8-flash', + provider: 'opencode', + name: 'Gemini 3.8 Flash', + api: 'google-generative-ai', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + }, + { + id: 'glm-4.6', + provider: 'opencode', + name: 'GLM-4.6', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'glm-4.7', + provider: 'opencode', + name: 'GLM-4.7', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-4.7-free', + provider: 'opencode', + name: 'GLM-4.7 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5', + provider: 'opencode', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5-free', + provider: 'opencode', + name: 'GLM-5 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.1', + provider: 'opencode', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.2', + provider: 'opencode', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.3', + provider: 'opencode', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'glm-5.3-flash', + provider: 'opencode', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'gpt-5', + provider: 'opencode', + name: 'GPT-5', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5-codex', + provider: 'opencode', + name: 'GPT-5 Codex', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5-nano', + provider: 'opencode', + name: 'GPT-5 Nano', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.4, cacheRead: 0.005, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.1', + provider: 'opencode', + name: 'GPT-5.1', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.1-codex', + provider: 'opencode', + name: 'GPT-5.1 Codex', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.1-codex-max', + provider: 'opencode', + name: 'GPT-5.1 Codex Max', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.1-codex-mini', + provider: 'opencode', + name: 'GPT-5.1 Codex Mini', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.2', + provider: 'opencode', + name: 'GPT-5.2', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.2-codex', + provider: 'opencode', + name: 'GPT-5.2 Codex', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.3-codex', + provider: 'opencode', + name: 'GPT-5.3 Codex', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.3-codex-spark', + provider: 'opencode', + name: 'GPT-5.3 Codex Spark', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.4', + provider: 'opencode', + name: 'GPT-5.4', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 5, + output: 22.5, + cacheRead: 0.5, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'gpt-5.4-mini', + provider: 'opencode', + name: 'GPT-5.4 Mini', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.4-nano', + provider: 'opencode', + name: 'GPT-5.4 Nano', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.4-pro', + provider: 'opencode', + name: 'GPT-5.4 Pro', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 30, output: 180, cacheRead: 30, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.5', + provider: 'opencode', + name: 'GPT-5.5', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.5-pro', + provider: 'opencode', + name: 'GPT-5.5 Pro', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 30, output: 180, cacheRead: 30, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.6-luna', + provider: 'opencode', + name: 'GPT-5.6 Luna', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.6-sol', + provider: 'opencode', + name: 'GPT-5.6 Sol', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-5.6-terra', + provider: 'opencode', + name: 'GPT-5.6 Terra', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 3.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 5, + output: 22.5, + cacheRead: 0.5, + cacheWrite: 6.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-astra', + provider: 'opencode', + name: 'GPT-6 Astra', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-luna', + provider: 'opencode', + name: 'GPT-6 Luna', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-6-sol', + provider: 'opencode', + name: 'GPT-6 Sol', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'gpt-6.1-sol', + provider: 'opencode', + name: 'GPT-6.1 Sol', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + sessionAffinityFormat: 'openai-nosession', + supportsTemperature: false, + }, + }, + { + id: 'grok-4.5', + provider: 'opencode', + name: 'Grok 4.5', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'grok-4.6', + provider: 'opencode', + name: 'Grok 4.6', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'grok-4.7', + provider: 'opencode', + name: 'Grok 4.7', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'grok-build-0.1', + provider: 'opencode', + name: 'Grok Build 0.1', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1, output: 2, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'grok-code', + provider: 'opencode', + name: 'Grok Code Fast 1', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'hy3-free', + provider: 'opencode', + name: 'Hy3 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 190000, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'hy3-preview-free', + provider: 'opencode', + name: 'Hy3 preview Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'kimi-k2', + provider: 'opencode', + name: 'Kimi K2', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 2.5, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'kimi-k2-thinking', + provider: 'opencode', + name: 'Kimi K2 Thinking', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.4, output: 2.5, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'kimi-k2.5', + provider: 'opencode', + name: 'Kimi K2.5', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 3, cacheRead: 0.08, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'kimi-k2.5-free', + provider: 'opencode', + name: 'Kimi K2.5 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'kimi-k2.6', + provider: 'opencode', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'kimi-k2.7-code', + provider: 'opencode', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'kimi-k3', + provider: 'opencode', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { max: 'max' }, budget: false }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'laguna-s-2.1-free', + provider: 'opencode', + name: 'Laguna S 2.1 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'ling-2.6-flash-free', + provider: 'opencode', + name: 'Ling 2.6 Flash Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262100, + maxTokens: 32800, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'ling-3.0-flash-fin-free', + provider: 'opencode', + name: 'Ling 3.0 Flash Fin Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'ling-3.0-flash-free', + provider: 'opencode', + name: 'Ling-3.0-flash Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'ling-3.0-tiny-free', + provider: 'opencode', + name: 'Ling-3.0-tiny Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'longcat-2.0-free', + provider: 'opencode', + name: 'LongCat-2.0 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'longcat-2.5-preview-free', + provider: 'opencode', + name: 'LongCat 2.5 Preview Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2-flash-free', + provider: 'opencode', + name: 'MiMo V2 Flash Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2-omni-free', + provider: 'opencode', + name: 'MiMo V2 Omni Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2-pro-free', + provider: 'opencode', + name: 'MiMo V2 Pro Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2.5-free', + provider: 'opencode', + name: 'MiMo V2.5 Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 32000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'mimo-v2.6-flash-free', + provider: 'opencode', + name: 'MiMo-V2.6-Flash Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 32000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'minimax-m2.1', + provider: 'opencode', + name: 'MiniMax-M2.1', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'minimax-m2.1-free', + provider: 'opencode', + name: 'MiniMax-M2.1 Free', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'minimax-m2.5', + provider: 'opencode', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'minimax-m2.5-free', + provider: 'opencode', + name: 'MiniMax-M2.5 Free', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + }, + { + id: 'minimax-m2.7', + provider: 'opencode', + name: 'MiniMax-M2.7', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'minimax-m3', + provider: 'opencode', + name: 'MiniMax-M3', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 512000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'minimax-m3-free', + provider: 'opencode', + name: 'MiniMax-M3 Free', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 32000, + }, + { + id: 'muse-spark-1.2', + provider: 'opencode', + name: 'Muse Spark 1.2', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'muse-spark-1.2-contributor-free', + provider: 'opencode', + name: 'Muse Spark 1.2 Free', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'muse-spark-1.3', + provider: 'opencode', + name: 'Muse Spark 1.3', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'muse-spark-1.3-contributor-free', + provider: 'opencode', + name: 'Muse Spark 1.3 Free', + api: 'openai-responses', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { sessionAffinityFormat: 'openai-nosession' }, + }, + { + id: 'nemotron-3-super-free', + provider: 'opencode', + name: 'Nemotron 3 Super Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'nemotron-3-ultra-free', + provider: 'opencode', + name: 'Nemotron 3 Ultra Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'nemotron-3.5-lightning-free', + provider: 'opencode', + name: 'Nemotron 3.5 Lightning Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'north-mini-code-free', + provider: 'opencode', + name: 'North Mini Code Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'qwen3-coder', + provider: 'opencode', + name: 'Qwen3 Coder', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.45, output: 1.8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'qwen3.5-plus', + provider: 'opencode', + name: 'Qwen3.5 Plus', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, + contextWindow: 262144, + maxTokens: 65536, + }, + { + id: 'qwen3.6-plus', + provider: 'opencode', + name: 'Qwen3.6 Plus', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.625 }, + contextWindow: 262144, + maxTokens: 65536, + }, + { + id: 'qwen3.6-plus-free', + provider: 'opencode', + name: 'Qwen3.6 Plus Free', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + }, + { + id: 'qwen3.8-flash', + provider: 'opencode', + name: 'Qwen3.8 Flash', + api: 'anthropic-messages', + baseUrl: 'https://opencode.ai/zen', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0.2 }, + contextWindow: 1000000, + maxTokens: 131072, + }, + { + id: 'qwen3.8-max', + provider: 'opencode', + name: 'Qwen3.8 Max', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'ring-2.6-1t-free', + provider: 'opencode', + name: 'Ring 2.6 1T Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 66000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'space-bunny-free', + provider: 'opencode', + name: 'Space Bunny Free', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 524288, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'trinity-large-preview-free', + provider: 'opencode', + name: 'Trinity Large Preview', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + }, + }, + { + id: 'x-preview-f-free', + provider: 'opencode', + name: 'Ox Alpha Free (Unlimited)', + api: 'openai-completions', + baseUrl: 'https://opencode.ai/zen/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/openrouter.ts b/packages/ai-models/src/providers/openrouter.ts new file mode 100644 index 0000000000..9a39d8ee23 --- /dev/null +++ b/packages/ai-models/src/providers/openrouter.ts @@ -0,0 +1,11621 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** OpenRouter. */ +export const provider: ProviderRecord = { + id: 'openrouter', + name: 'OpenRouter', + baseUrl: 'https://openrouter.ai/api/v1', + apis: ['anthropic-messages', 'openai-completions'], + env: [['OPENROUTER_API_KEY']], +} + +/** Every OpenRouter model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: '~anthropic/claude-fable-latest', + provider: 'openrouter', + name: 'Claude Fable Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: '~anthropic/claude-haiku-latest', + provider: 'openrouter', + name: 'Claude Haiku Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~anthropic/claude-opus-latest', + provider: 'openrouter', + name: 'Claude Opus Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~anthropic/claude-sonnet-latest', + provider: 'openrouter', + name: 'Claude Sonnet Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~deepseek/deepseek-flash-latest', + provider: 'openrouter', + name: 'DeepSeek Flash Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.0198, output: 0.396, cacheRead: 0.00291, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~deepseek/deepseek-pro-latest', + provider: 'openrouter', + name: 'DeepSeek Pro Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.123, output: 3.5, cacheRead: 0.123, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 393216, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~deepseek/deepseek-v4-flash-latest', + provider: 'openrouter', + name: 'DeepSeek V4 Flash Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { + input: 0.0099, + output: 0.13068, + cacheRead: 0.001386, + cacheWrite: 0, + }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~google/gemini-flash-latest', + provider: 'openrouter', + name: 'Gemini Flash Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0.041667 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~google/gemini-pro-latest', + provider: 'openrouter', + name: 'Gemini Pro Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0.375, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0.375, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~moonshotai/kimi-latest', + provider: 'openrouter', + name: 'Kimi Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.3654, output: 9.1343, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~openai/gpt-astra-latest', + provider: 'openrouter', + name: 'GPT Astra Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: '~openai/gpt-luna-latest', + provider: 'openrouter', + name: 'GPT Luna Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: '~openai/gpt-mini-latest', + provider: 'openrouter', + name: 'GPT Mini Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: '~openai/gpt-sol-latest', + provider: 'openrouter', + name: 'GPT Sol Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: '~openai/gpt-terra-latest', + provider: 'openrouter', + name: 'GPT Terra Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: '~x-ai/grok-latest', + provider: 'openrouter', + name: 'Grok Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 450000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~z-ai/glm-flash-latest', + provider: 'openrouter', + name: 'GLM Flash Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.02, output: 0.2475, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: '~z-ai/glm-latest', + provider: 'openrouter', + name: 'GLM Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.13, output: 4, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'aion-labs/aion-2.0', + provider: 'openrouter', + name: 'Aion-2.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.8, output: 1.6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'aion-labs/aion-3.0', + provider: 'openrouter', + name: 'Aion-3.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 3, output: 6, cacheRead: 0.75, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'aion-labs/aion-3.0-mini', + provider: 'openrouter', + name: 'Aion-3.0-Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.7, output: 1.4, cacheRead: 0.18, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'aion-labs/aion-3.5', + provider: 'openrouter', + name: 'Aion 3.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 6, cacheRead: 0.75, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'aion-labs/aion-3.5-mini', + provider: 'openrouter', + name: 'Aion 3.5 Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.7, output: 1.4, cacheRead: 0.18, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'aion-labs/aion-rp-llama-3.1-8b', + provider: 'openrouter', + name: 'Aion-RP 1.0 (8B)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.8, output: 1.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 29491, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'amazon/nova-2-lite-v1', + provider: 'openrouter', + name: 'Nova 2 Lite', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 2.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65535, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'amazon/nova-lite-v1', + provider: 'openrouter', + name: 'Nova Lite 1.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.06, output: 0.24, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 300000, + maxTokens: 5120, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'amazon/nova-micro-v1', + provider: 'openrouter', + name: 'Nova Micro 1.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.035, output: 0.14, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 5120, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'amazon/nova-premier-v1', + provider: 'openrouter', + name: 'Nova Premier 1.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 12.5, cacheRead: 0.625, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 32000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'amazon/nova-pro-v1', + provider: 'openrouter', + name: 'Nova Pro 1.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.8, output: 3.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 300000, + maxTokens: 5120, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'anthracite-org/magnum-v4-72b', + provider: 'openrouter', + name: 'Magnum v4 72B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 2.5, output: 5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'anthropic/claude-3-haiku', + provider: 'openrouter', + name: 'Claude Haiku 3', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.25, output: 1.25, cacheRead: 0.03, cacheWrite: 0.3 }, + contextWindow: 200000, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + borrowedFrom: 'vercel/anthropic/claude-3-haiku', + }, + { + id: 'anthropic/claude-fable-5', + provider: 'openrouter', + name: 'Claude Fable 5', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-fable-5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Fable 5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-fable-5.1', + provider: 'openrouter', + name: 'Claude Fable 5.1', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsMidConvoEffort: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-fable-5.1:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Fable 5.1 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.125, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-haiku-4.5', + provider: 'openrouter', + name: 'Claude Haiku 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-haiku-4.5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Haiku 4.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 2.5, cacheRead: 0.05, cacheWrite: 0.625 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-opus-4.1', + provider: 'openrouter', + name: 'Claude Opus 4.1 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, + contextWindow: 200000, + maxTokens: 32000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-opus-4.1:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 4.1 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 7.5, output: 37.5, cacheRead: 0.75, cacheWrite: 9.375 }, + contextWindow: 200000, + maxTokens: 32000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-opus-4.5', + provider: 'openrouter', + name: 'Claude Opus 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-opus-4.5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 4.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-opus-4.6', + provider: 'openrouter', + name: 'Claude Opus 4.6', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { + input: 5, + output: 25, + cacheRead: 0.5, + cacheWrite: 6.25, + tiers: [ + { + inputTokensAbove: 200000, + input: 10, + output: 37.5, + cacheRead: 1, + cacheWrite: 12.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-4.6:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 4.6 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-opus-4.7', + provider: 'openrouter', + name: 'Claude Opus 4.7', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 5, + output: 25, + cacheRead: 0.5, + cacheWrite: 6.25, + tiers: [ + { + inputTokensAbove: 200000, + input: 10, + output: 37.5, + cacheRead: 1, + cacheWrite: 12.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-4.7:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 4.7 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-opus-4.8', + provider: 'openrouter', + name: 'Claude Opus 4.8', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-4.8:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 4.8 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-opus-5', + provider: 'openrouter', + name: 'Claude Opus 5', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-opus-5.5', + provider: 'openrouter', + name: 'Claude Opus 5.5', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsMidConvoEffort: true, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-5.5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Opus 5.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.1, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-sonnet-4', + provider: 'openrouter', + name: 'Claude Sonnet 4', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200000, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 200000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-sonnet-4.5', + provider: 'openrouter', + name: 'Claude Sonnet 4.5 (latest)', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200000, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-sonnet-4.5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Sonnet 4.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 1.875 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-sonnet-4.6', + provider: 'openrouter', + name: 'Claude Sonnet 4.6', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200000, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-sonnet-4.6:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Sonnet 4.6 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 1.875 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + }, + }, + { + id: 'anthropic/claude-sonnet-5', + provider: 'openrouter', + name: 'Claude Sonnet 5', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-sonnet-5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Sonnet 5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'anthropic/claude-sonnet-5.5', + provider: 'openrouter', + name: 'Claude Sonnet 5.5', + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-sonnet-5.5:batch', + provider: 'openrouter', + name: 'Anthropic: Claude Sonnet 5.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + cacheControlFormat: 'anthropic', + supportsTemperature: false, + }, + }, + { + id: 'apodex/apodex-1.1-mini:free', + provider: 'openrouter', + name: 'Apodex: Apodex 1.1 Mini (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'arcee-ai/trinity-large-thinking', + provider: 'openrouter', + name: 'Trinity Large Thinking', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 0.8, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 80000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'auto', + provider: 'openrouter', + name: 'Auto Router', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + borrowedFrom: 'kilo/openrouter/auto', + }, + { + id: 'baidu/ernie-4.5-vl-424b-a47b', + provider: 'openrouter', + name: 'ERNIE 4.5 VL 424B A47B ', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.42, output: 1.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 123000, + maxTokens: 16000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance-seed/seed-1.6', + provider: 'openrouter', + name: 'Seed 1.6', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.25, + output: 2, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128000, + input: 0.5, + output: 4, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance-seed/seed-1.6-flash', + provider: 'openrouter', + name: 'Seed 1.6 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.075, + output: 0.3, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128000, + input: 0.1, + output: 0.8, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance-seed/seed-2-1-turbo', + provider: 'openrouter', + name: 'Seed 2.1 Turbo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 2.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance-seed/seed-2.0-code', + provider: 'openrouter', + name: 'Seed 2.0 Code', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 0.5, + output: 3, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128000, + input: 1, + output: 6, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance-seed/seed-2.0-lite', + provider: 'openrouter', + name: 'Seed 2.0 Lite', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 0.25, + output: 2, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128000, + input: 0.5, + output: 4, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance-seed/seed-2.0-mini', + provider: 'openrouter', + name: 'Seed 2.0 Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.4, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128000, + input: 0.2, + output: 0.8, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'bytedance/ui-tars-1.5-7b', + provider: 'openrouter', + name: 'UI-TARS 7B ', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 2048, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cognitivecomputations/dolphin-mistral-24b-venice-edition', + provider: 'openrouter', + name: 'Uncensored', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.2, output: 0.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cohere/command-a', + provider: 'openrouter', + name: 'Command A', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cohere/command-a-plus', + provider: 'openrouter', + name: 'Command A+', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 1.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 192000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cohere/command-r-08-2024', + provider: 'openrouter', + name: 'Command R', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cohere/command-r-plus-08-2024', + provider: 'openrouter', + name: 'Command R+', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cohere/command-r7b-12-2024', + provider: 'openrouter', + name: 'Command R7B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.0375, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'cohere/north-mini-code:free', + provider: 'openrouter', + name: 'North Mini Code (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-chat', + provider: 'openrouter', + name: 'DeepSeek Chat', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.2574, output: 1.0287, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 16000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-chat-v3-0324', + provider: 'openrouter', + name: 'DeepSeek V3 0324', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.29, output: 1.14, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 147456, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-chat-v3.1', + provider: 'openrouter', + name: 'DeepSeek V3.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.25, output: 0.95, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-r1', + provider: 'openrouter', + name: 'DeepSeek-R1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.7, output: 2.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 64000, + maxTokens: 16000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-r1-0528', + provider: 'openrouter', + name: 'R1 0528', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 2.15, cacheRead: 0.35, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v3.1-terminus', + provider: 'openrouter', + name: 'DeepSeek V3.1 Terminus', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 1, cacheRead: 0.135, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v3.2', + provider: 'openrouter', + name: 'DeepSeek V3.2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.28, output: 0.42, cacheRead: 0.028, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v3.2-exp', + provider: 'openrouter', + name: 'DeepSeek V3.2 Exp', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.27, output: 0.41, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 147456, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v4-flash', + provider: 'openrouter', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek/deepseek-v4-flash-0731', + provider: 'openrouter', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.01, output: 1.28, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v4-flash-vision-exp', + provider: 'openrouter', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.2156, output: 0.6468, cacheRead: 0.00686, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v4-pro', + provider: 'openrouter', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.783, output: 1.566, cacheRead: 0.06525, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek/deepseek-v4-pro-0813', + provider: 'openrouter', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.66, output: 1.98, cacheRead: 0.022, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 393216, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v4.1-flash', + provider: 'openrouter', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.0198, output: 0.396, cacheRead: 0.00291, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'deepseek/deepseek-v4.1-flash:batch', + provider: 'openrouter', + name: 'DeepSeek: DeepSeek V4.1 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.112, output: 0.336, cacheRead: 0.00336, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'dots-studio/dots-3-note-preview:free', + provider: 'openrouter', + name: 'Dots3-Note Preview (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 512000, + maxTokens: 460800, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'fireworks/ember-1', + provider: 'openrouter', + name: 'Ember-1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-flash', + provider: 'openrouter', + name: 'Gemini 2.5 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65535, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-flash-image', + provider: 'openrouter', + name: 'Nano Banana', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0.083333 }, + contextWindow: 32768, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-flash-lite', + provider: 'openrouter', + name: 'Gemini 2.5 Flash-Lite', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65535, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-flash-lite:batch', + provider: 'openrouter', + name: 'Google: Gemini 2.5 Flash Lite (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65535, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-flash:batch', + provider: 'openrouter', + name: 'Google: Gemini 2.5 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 1.25, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65535, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-pro', + provider: 'openrouter', + name: 'Gemini 2.5 Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 1.25, + output: 10, + cacheRead: 0.125, + cacheWrite: 0.375, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0.375, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-pro-preview', + provider: 'openrouter', + name: 'Gemini 2.5 Pro Preview 06-05', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 1.25, + output: 10, + cacheRead: 0.125, + cacheWrite: 0.375, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0.375, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-2.5-pro:batch', + provider: 'openrouter', + name: 'Google: Gemini 2.5 Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.625, output: 5, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3-flash-preview', + provider: 'openrouter', + name: 'Gemini 3 Flash Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3-flash-preview:batch', + provider: 'openrouter', + name: 'Google: Gemini 3 Flash Preview (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3-pro-image', + provider: 'openrouter', + name: 'Nano Banana Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0.375 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3-pro-image-preview', + provider: 'openrouter', + name: 'Nano Banana Pro Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0.375 }, + contextWindow: 65536, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-flash-image', + provider: 'openrouter', + name: 'Nano Banana 2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', minimal: 'minimal', high: 'high' }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-flash-image-preview', + provider: 'openrouter', + name: 'Nano Banana 2 Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', minimal: 'minimal', high: 'high' }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 58982, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-flash-lite', + provider: 'openrouter', + name: 'Gemini 3.1 Flash Lite', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-flash-lite-image', + provider: 'openrouter', + name: 'Nano Banana 2 Lite', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', minimal: 'minimal', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 58982, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-flash-lite-preview', + provider: 'openrouter', + name: 'Gemini 3.1 Flash Lite Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-flash-lite:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.1 Flash Lite (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.125, output: 0.75, cacheRead: 0.0125, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-pro-preview', + provider: 'openrouter', + name: 'Gemini 3.1 Pro Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0.375, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0.375, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-pro-preview-customtools', + provider: 'openrouter', + name: 'Gemini 3.1 Pro Preview Custom Tools', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0.375, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0.375, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.1-pro-preview:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.1 Pro Preview (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.5-flash', + provider: 'openrouter', + name: 'Gemini 3.5 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.5-flash-lite', + provider: 'openrouter', + name: 'Gemini 3.5 Flash Lite', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0.083333 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.5-flash-lite:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.5 Flash Lite (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 1.25, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'google/gemini-3.5-flash:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.5 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.6-flash', + provider: 'openrouter', + name: 'Gemini 3.6 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0.041667 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.6-flash:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.6 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 0.375, + output: 1.875, + cacheRead: 0.0375, + cacheWrite: 0.041667, + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'google/gemini-3.7-flash', + provider: 'openrouter', + name: 'Gemini 3.7 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0.041667 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.7-flash:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.7 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 0.375, + output: 1.875, + cacheRead: 0.0375, + cacheWrite: 0.041667, + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'google/gemini-3.8-flash', + provider: 'openrouter', + name: 'Gemini 3.8 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0.041667 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemini-3.8-flash:batch', + provider: 'openrouter', + name: 'Google: Gemini 3.8 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 0.375, + output: 1.875, + cacheRead: 0.0375, + cacheWrite: 0.041667, + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'google/gemini-nano-banana-2.1', + provider: 'openrouter', + name: 'Google: Nano Banana 2.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { minimal: 'minimal', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 7.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 58982, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-2-27b-it', + provider: 'openrouter', + name: 'Gemma 2 27B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.65, output: 0.65, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 2048, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-3-12b-it', + provider: 'openrouter', + name: 'Gemma 3 12B IT', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.05, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-3-27b-it', + provider: 'openrouter', + name: 'Gemma 3 27B IT', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.08, output: 0.45, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-3-4b-it', + provider: 'openrouter', + name: 'Gemma 3 4B IT', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.05, output: 0.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-4-26b-a4b-it', + provider: 'openrouter', + name: 'Gemma 4 26B A4B IT', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.09, output: 0.3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-4-26b-a4b-it:free', + provider: 'openrouter', + name: 'Gemma 4 26B A4B (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-4-31b-it', + provider: 'openrouter', + name: 'Gemma 4 31B IT', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.09, output: 0.34, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/gemma-4-31b-it:free', + provider: 'openrouter', + name: 'Gemma 4 31B (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/lyria-3-clip-preview', + provider: 'openrouter', + name: 'Lyria 3 Clip Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'google/lyria-3-pro-preview', + provider: 'openrouter', + name: 'Lyria 3 Pro Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'gryphe/mythomax-l2-13b', + provider: 'openrouter', + name: 'MythoMax 13B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.08, output: 0.11, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 3686, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'ibm-granite/granite-4.0-h-micro', + provider: 'openrouter', + name: 'Granite 4.0 Micro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.017, output: 0.112, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131000, + maxTokens: 117900, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'ibm-granite/granite-4.2-8b', + provider: 'openrouter', + name: 'Granite 4.2 8B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.06, output: 0.25, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inception/mercury-2', + provider: 'openrouter', + name: 'Mercury 2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 0.75, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 50000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inception/mercury-2.5', + provider: 'openrouter', + name: 'Mercury 2.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.04, output: 0.15, cacheRead: 0.004, cacheWrite: 0 }, + contextWindow: 260000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inclusionai/ling-3.0-flash', + provider: 'openrouter', + name: 'Ling 3.0 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.021, output: 0.063, cacheRead: 0.0042, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inclusionai/ling-3.0-flash-fin', + provider: 'openrouter', + name: 'Ling 3.0 Flash Fin', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.06, output: 0.18, cacheRead: 0.012, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inclusionai/ling-3.0-flash-fin:free', + provider: 'openrouter', + name: 'inclusionAI: Ling 3.0 Flash Fin', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.075, output: 0.22, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + borrowedFrom: 'kilo/inclusionai/ling-3.0-flash-fin', + }, + { + id: 'inclusionai/ling-3.0-flash-sante:free', + provider: 'openrouter', + name: 'Ling 3.0 Flash Sante (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inclusionai/ling-3.0-flash-vl', + provider: 'openrouter', + name: 'Ling 3.0 Flash VL', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.021, output: 0.0616, cacheRead: 0.0042, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inclusionai/ling-3.0-flash-vl:free', + provider: 'openrouter', + name: 'Ling 3.0 Flash VL', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.06, output: 0.18, cacheRead: 0.012, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + borrowedFrom: 'nano-gpt/inclusionai/ling-3.0-flash-vl', + }, + { + id: 'inclusionai/ling-3.1-flash', + provider: 'openrouter', + name: 'inclusionAI: Ling 3.1 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inference-net/schematron-v2-small', + provider: 'openrouter', + name: 'Schematron V2 Small', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.05, output: 0.23, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'inference-net/schematron-v2-turbo', + provider: 'openrouter', + name: 'Schematron V2 Turbo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.03, output: 0.15, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'kwaipilot/kat-coder-pro-v2.5', + provider: 'openrouter', + name: 'KAT-Coder-Pro V2.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.74, output: 2.96, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'liquid/lfm-2.5-2.6b:free', + provider: 'openrouter', + name: 'LFM2.5-2.6B (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mancer/weaver', + provider: 'openrouter', + name: 'Weaver (alpha)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 0.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8000, + maxTokens: 6000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meituan/longcat-2.0', + provider: 'openrouter', + name: 'LongCat 2.0', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1048756, + maxTokens: 262144, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-3.1-70b-instruct', + provider: 'openrouter', + name: 'Llama-3.1-70B-Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-3.1-8b-instruct', + provider: 'openrouter', + name: 'Llama-3.1-8B-Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.05, output: 0.08, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-3.2-1b-instruct', + provider: 'openrouter', + name: 'Llama 3.2 1B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.027, output: 0.201, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 60000, + maxTokens: 54000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-3.2-3b-instruct', + provider: 'openrouter', + name: 'Llama 3.2 3B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.05, output: 0.33, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-3.3-70b-instruct', + provider: 'openrouter', + name: 'Llama-3.3-70B-Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.32, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-4-maverick', + provider: 'openrouter', + name: 'Llama 4 Maverick', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1875, output: 0.6525, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-4-scout', + provider: 'openrouter', + name: 'Llama 4 Scout', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1310720, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta-llama/llama-guard-4-12b', + provider: 'openrouter', + name: 'Llama Guard 4 12B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.18, output: 0.18, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta/muse-glimmer-30b', + provider: 'openrouter', + name: 'Muse Glimmer 30B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.35, output: 1.5, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta/muse-spark-1.1', + provider: 'openrouter', + name: 'Muse Spark 1.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta/muse-spark-1.2', + provider: 'openrouter', + name: 'Muse Spark 1.2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta/muse-spark-1.2-contributor', + provider: 'openrouter', + name: 'Muse Spark 1.2 Contributor', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta/muse-spark-1.3', + provider: 'openrouter', + name: 'Muse Spark 1.3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'meta/muse-spark-1.3-contributor', + provider: 'openrouter', + name: 'Muse Spark 1.3 Contributor', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'microsoft/phi-4', + provider: 'openrouter', + name: 'Phi 4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.07, output: 0.14, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16384, + maxTokens: 14745, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'microsoft/wizardlm-2-8x22b', + provider: 'openrouter', + name: 'WizardLM-2 8x22B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.62, output: 0.62, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65535, + maxTokens: 8000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-01', + provider: 'openrouter', + name: 'MiniMax-01', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 1.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000192, + maxTokens: 40000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m1', + provider: 'openrouter', + name: 'MiniMax M1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.4, output: 2.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 40000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m2', + provider: 'openrouter', + name: 'MiniMax-M2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 176947, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m2-her', + provider: 'openrouter', + name: 'MiniMax-M2 Her', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 2048, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m2.1', + provider: 'openrouter', + name: 'MiniMax-M2.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m2.5', + provider: 'openrouter', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.27, output: 1.08, cacheRead: 0.027, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m2.7', + provider: 'openrouter', + name: 'MiniMax-M2.7', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.21, output: 0.84, cacheRead: 0.042, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 176947, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'minimax/minimax-m3', + provider: 'openrouter', + name: 'MiniMax-M3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 512000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/codestral-2508', + provider: 'openrouter', + name: 'Codestral 2508', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 0.3, output: 0.9, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 204800, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/codestral-2508:batch', + provider: 'openrouter', + name: 'Mistral: Codestral 2508 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 0.15, output: 0.45, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 204800, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/devstral-2512', + provider: 'openrouter', + name: 'Devstral 2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/ministral-14b-2512', + provider: 'openrouter', + name: 'Ministral 3 14B 2512', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.2, output: 0.2, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/ministral-3b-2512', + provider: 'openrouter', + name: 'Ministral 3 3B 2512', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.1, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 104857, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/ministral-8b-2512', + provider: 'openrouter', + name: 'Ministral 3 8B 2512', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.15, output: 0.15, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/ministral-8b-2512:batch', + provider: 'openrouter', + name: 'Mistral: Ministral 3 8B 2512 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.075, output: 0.075, cacheRead: 0.0075, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-large', + provider: 'openrouter', + name: 'Mistral Large', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 102400, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-large-2407', + provider: 'openrouter', + name: 'Mistral Large 2407', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 104857, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-large-2512', + provider: 'openrouter', + name: 'Mistral Large 3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-large-2512:batch', + provider: 'openrouter', + name: 'Mistral: Mistral Large 3 2512 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.25, output: 0.75, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-large-4-0', + provider: 'openrouter', + name: 'Mistral: Mistral Large 4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.68, output: 2.09, cacheRead: 0.07, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 262144, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-medium-3', + provider: 'openrouter', + name: 'Mistral Medium 3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 104857, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-medium-3-5', + provider: 'openrouter', + name: 'Mistral Medium 3.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 7.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-medium-3-5:batch', + provider: 'openrouter', + name: 'Mistral: Mistral Medium 3.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.75, output: 3.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-medium-3.1', + provider: 'openrouter', + name: 'Mistral Medium 3.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 104857, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-medium-3.1:batch', + provider: 'openrouter', + name: 'Mistral: Mistral Medium 3.1 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.2, output: 1, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 104857, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-nemo', + provider: 'openrouter', + name: 'Mistral Nemo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.019, output: 0.03, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-saba', + provider: 'openrouter', + name: 'Saba', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 0.2, output: 0.6, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 26214, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-small-24b-instruct-2501', + provider: 'openrouter', + name: 'Mistral Small 3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.05, output: 0.08, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-small-2603', + provider: 'openrouter', + name: 'Mistral Small 4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-small-2603:batch', + provider: 'openrouter', + name: 'Mistral: Mistral Small 4 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.075, output: 0.3, cacheRead: 0.0075, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 209715, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-small-3.1-24b-instruct', + provider: 'openrouter', + name: 'Mistral Small 3.1 24B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.351, output: 0.555, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 102400, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mistral-small-3.2-24b-instruct', + provider: 'openrouter', + name: 'Mistral Small 3.2 24B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.09375, output: 0.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/mixtral-8x22b-instruct', + provider: 'openrouter', + name: 'Mixtral 8x22B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: false, + cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 52428, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'mistralai/voxtral-small-24b-2507', + provider: 'openrouter', + name: 'Voxtral Small 24B 2507', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'audio', 'document'], + reasoning: false, + cost: { input: 0.1, output: 0.3, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 26214, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k2', + provider: 'openrouter', + name: 'Kimi K2 0711', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.57, output: 2.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k2-0905', + provider: 'openrouter', + name: 'Kimi K2 0905', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.6, output: 2.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 98304, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k2-thinking', + provider: 'openrouter', + name: 'Kimi K2 Thinking', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 98304, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k2.5', + provider: 'openrouter', + name: 'Kimi K2.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.45, output: 2.25, cacheRead: 0.07, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k2.6', + provider: 'openrouter', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.65, output: 3.41, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k2.7-code', + provider: 'openrouter', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.6712, output: 3.35, cacheRead: 0.18, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k3', + provider: 'openrouter', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'moonshotai/kimi-k3:batch', + provider: 'openrouter', + name: 'MoonshotAI: Kimi K3 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.28, output: 11.4, cacheRead: 0.228, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'morph/morph-v3-fast', + provider: 'openrouter', + name: 'Morph V3 Fast', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.8, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 81920, + maxTokens: 38000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'morph/morph-v3-large', + provider: 'openrouter', + name: 'Morph V3 Large', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.9, output: 1.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nex-agi/nex-n2.5-mini', + provider: 'openrouter', + name: 'Nex-N2.5-Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.025, output: 0.1, cacheRead: 0.0025, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nex-agi/nex-n2.5-mini:free', + provider: 'openrouter', + name: 'Nex AGI: Nex-N2.5-Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.025, output: 0.1, cacheRead: 0.0025, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + borrowedFrom: 'kilo/nex-agi/nex-n2.5-mini', + }, + { + id: 'nex-agi/nex-n2.5-pro', + provider: 'openrouter', + name: 'Nex-N2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.075, output: 0.25, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nex-agi/nex-n2.5-pro:free', + provider: 'openrouter', + name: 'Nex AGI: Nex-N2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.075, output: 0.25, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + borrowedFrom: 'kilo/nex-agi/nex-n2.5-pro', + }, + { + id: 'nousresearch/hermes-3-llama-3.1-405b', + provider: 'openrouter', + name: 'Hermes 3 405B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 1, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nousresearch/hermes-3-llama-3.1-70b', + provider: 'openrouter', + name: 'Hermes 3 70B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.7, output: 0.7, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nousresearch/hermes-4-405b', + provider: 'openrouter', + name: 'Hermes 4 405B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3-nano-30b-a3b', + provider: 'openrouter', + name: 'Nemotron 3 Nano 30B A3B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.05, output: 0.2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free', + provider: 'openrouter', + name: 'Nemotron 3 Nano Omni (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3-super-120b-a12b', + provider: 'openrouter', + name: 'Nemotron 3 Super 120B A12B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium' }, + budget: true, + }, + cost: { input: 0.08, output: 0.45, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3-super-120b-a12b:free', + provider: 'openrouter', + name: 'Nemotron 3 Super (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium' }, + budget: true, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3-ultra-550b-a55b', + provider: 'openrouter', + name: 'Nemotron 3 Ultra 550B A55B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 182520, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3-ultra-550b-a55b:free', + provider: 'openrouter', + name: 'Nemotron 3 Ultra (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3.5-content-safety', + provider: 'openrouter', + name: 'Nemotron 3.5 Content Safety', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.2, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3.5-content-safety:free', + provider: 'openrouter', + name: 'Nemotron 3.5 Content Safety (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3.5-lightning', + provider: 'openrouter', + name: 'Nemotron 3.5 Lightning 30B A3B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.06, output: 0.16, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'nvidia/nemotron-3.5-lightning:free', + provider: 'openrouter', + name: 'Nemotron 3.5 Lightning (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'openai/gpt-3.5-turbo', + provider: 'openrouter', + name: 'GPT-3.5-turbo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16385, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-3.5-turbo-0613', + provider: 'openrouter', + name: 'GPT-3.5 Turbo (older v0613)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 1, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 4095, + maxTokens: 3685, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-3.5-turbo-16k', + provider: 'openrouter', + name: 'GPT-3.5 Turbo 16k', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 3, output: 4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16385, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-3.5-turbo-instruct', + provider: 'openrouter', + name: 'GPT-3.5 Turbo Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 1.5, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 4095, + maxTokens: 3685, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-3.5-turbo:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-3.5 Turbo (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.25, output: 0.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16385, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4', + provider: 'openrouter', + name: 'GPT-4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8191, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4-turbo', + provider: 'openrouter', + name: 'GPT-4 Turbo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4-turbo:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-4 Turbo (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4.1', + provider: 'openrouter', + name: 'GPT-4.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4.1-mini', + provider: 'openrouter', + name: 'GPT-4.1 mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4.1-mini:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-4.1 Mini (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.2, output: 0.8, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4.1-nano', + provider: 'openrouter', + name: 'GPT-4.1 nano', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4.1-nano:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-4.1 Nano (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.05, output: 0.2, cacheRead: 0.0125, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4.1:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-4.1 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 1, output: 4, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o', + provider: 'openrouter', + name: 'GPT-4o', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o-2024-05-13', + provider: 'openrouter', + name: 'GPT-4o (2024-05-13)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o-2024-08-06', + provider: 'openrouter', + name: 'GPT-4o (2024-08-06)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o-2024-11-20', + provider: 'openrouter', + name: 'GPT-4o (2024-11-20)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o-mini', + provider: 'openrouter', + name: 'GPT-4o mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o-mini-2024-07-18', + provider: 'openrouter', + name: 'GPT-4o-mini (2024-07-18)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o-mini:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-4o-mini (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-4o:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-4o (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 1.25, output: 5, cacheRead: 0.625, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-5', + provider: 'openrouter', + name: 'GPT-5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5-image', + provider: 'openrouter', + name: 'GPT-5 Image', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 10, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-5-image-mini', + provider: 'openrouter', + name: 'GPT-5 Image Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2.5, output: 2, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-5-mini', + provider: 'openrouter', + name: 'GPT-5 Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5-mini:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5 Mini (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.125, output: 1, cacheRead: 0.0125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5-nano', + provider: 'openrouter', + name: 'GPT-5 Nano', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.4, cacheRead: 0.005, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5-nano:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5 Nano (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.025, output: 0.2, cacheRead: 0.0025, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5-pro', + provider: 'openrouter', + name: 'GPT-5 Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5 Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 7.5, output: 60, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.625, output: 5, cacheRead: 0.0625, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.1', + provider: 'openrouter', + name: 'GPT-5.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.1-codex', + provider: 'openrouter', + name: 'GPT-5.1 Codex', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.1-codex-max', + provider: 'openrouter', + name: 'GPT-5.1 Codex Max', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.1-codex-mini', + provider: 'openrouter', + name: 'GPT-5.1 Codex mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.1:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.1 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.625, output: 5, cacheRead: 0.0625, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.2', + provider: 'openrouter', + name: 'GPT-5.2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.2-chat', + provider: 'openrouter', + name: 'GPT-5.2 Chat', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.2-codex', + provider: 'openrouter', + name: 'GPT-5.2 Codex', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.2-pro', + provider: 'openrouter', + name: 'GPT-5.2 Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.2-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.2 Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 10.5, output: 84, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.2:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.2 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.875, output: 7, cacheRead: 0.0875, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.3-codex', + provider: 'openrouter', + name: 'GPT-5.3 Codex', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4', + provider: 'openrouter', + name: 'GPT-5.4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 5, + output: 22.5, + cacheRead: 0.5, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-image-2', + provider: 'openrouter', + name: 'GPT-5.4 Image 2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 8, output: 15, cacheRead: 2, cacheWrite: 0 }, + contextWindow: 272000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-mini', + provider: 'openrouter', + name: 'GPT-5.4 mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-mini:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.4 Mini (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.375, output: 2.25, cacheRead: 0.0375, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-nano', + provider: 'openrouter', + name: 'GPT-5.4 nano', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-nano:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.4 Nano (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.625, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-pro', + provider: 'openrouter', + name: 'GPT-5.4 Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.4 Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 15, output: 90, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.4:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.4 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 7.5, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.5', + provider: 'openrouter', + name: 'GPT-5.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.5-pro', + provider: 'openrouter', + name: 'GPT-5.5 Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.5-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.5 Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 15, output: 90, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.5:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.5 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-luna', + provider: 'openrouter', + name: 'GPT-5.6 Luna', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-luna-pro', + provider: 'openrouter', + name: 'GPT-5.6 Luna Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-luna-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.6 Luna Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.6, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-luna:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.6 Luna (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.6, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-sol', + provider: 'openrouter', + name: 'GPT-5.6 Sol', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-sol-pro', + provider: 'openrouter', + name: 'GPT-5.6 Sol Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-sol-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.6 Sol Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-sol:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.6 Sol (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-terra', + provider: 'openrouter', + name: 'GPT-5.6 Terra', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-terra-pro', + provider: 'openrouter', + name: 'GPT-5.6 Terra Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-terra-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.6 Terra Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-5.6-terra:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-5.6 Terra (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-astra', + provider: 'openrouter', + name: 'GPT-6 Astra', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-astra-pro', + provider: 'openrouter', + name: 'GPT-6 Astra Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-astra-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-6 Astra Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-astra:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-6 Astra (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-luna', + provider: 'openrouter', + name: 'GPT-6 Luna', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-luna-pro', + provider: 'openrouter', + name: 'GPT-6 Luna Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-luna-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-6 Luna Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.25, cacheRead: 0.005, cacheWrite: 0.0625 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-luna:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-6 Luna (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.25, cacheRead: 0.005, cacheWrite: 0.0625 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-sol', + provider: 'openrouter', + name: 'GPT-6 Sol', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-sol-pro', + provider: 'openrouter', + name: 'GPT-6 Sol Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-sol-pro:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-6 Sol Pro (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6-sol:batch', + provider: 'openrouter', + name: 'OpenAI: GPT-6 Sol (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6.1-sol', + provider: 'openrouter', + name: 'GPT-6.1 Sol', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-6.1-sol-pro', + provider: 'openrouter', + name: 'GPT-6.1 Sol Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-audio', + provider: 'openrouter', + name: 'GPT Audio', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-audio-mini', + provider: 'openrouter', + name: 'GPT Audio Mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.6, output: 2.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-chat-latest', + provider: 'openrouter', + name: 'GPT Chat Latest', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/gpt-oss-120b', + provider: 'openrouter', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.037, output: 0.17, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-oss-120b:batch', + provider: 'openrouter', + name: 'OpenAI: gpt-oss-120b (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.0296, output: 0.136, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-oss-20b', + provider: 'openrouter', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.018, output: 0.09, cacheRead: 0.009, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-oss-20b:batch', + provider: 'openrouter', + name: 'OpenAI: gpt-oss-20b (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.024, output: 0.112, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/gpt-oss-safeguard-20b', + provider: 'openrouter', + name: 'GPT OSS Safeguard 20B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + }, + }, + { + id: 'openai/o1', + provider: 'openrouter', + name: 'o1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o1-pro', + provider: 'openrouter', + name: 'o1-pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o3', + provider: 'openrouter', + name: 'o3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o3-mini', + provider: 'openrouter', + name: 'o3-mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o3-mini-high', + provider: 'openrouter', + name: 'o3 Mini High', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o3-mini:batch', + provider: 'openrouter', + name: 'OpenAI: o3 Mini (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.55, output: 2.2, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o3-pro', + provider: 'openrouter', + name: 'o3-pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o3:batch', + provider: 'openrouter', + name: 'OpenAI: o3 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1, output: 4, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o4-mini', + provider: 'openrouter', + name: 'o4-mini', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o4-mini-high', + provider: 'openrouter', + name: 'o4 Mini High', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openai/o4-mini:batch', + provider: 'openrouter', + name: 'OpenAI: o4 Mini (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.55, output: 2.2, cacheRead: 0.1375, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: true, + supportsTemperature: false, + }, + }, + { + id: 'openrouter/auto', + provider: 'openrouter', + name: 'Auto Router', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + provider: 'openrouter', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + id: 'openrouter/auto-beta', + name: 'Auto Router (Beta)', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 4096, + }, + { + id: 'openrouter/bodybuilder', + provider: 'openrouter', + name: 'Body Builder (beta)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'openrouter/free', + provider: 'openrouter', + name: 'Free Models Router', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 8000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'openrouter/fusion', + provider: 'openrouter', + name: 'Fusion', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'openrouter/pareto-code', + provider: 'openrouter', + name: 'Pareto Code Router', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 2000000, + maxTokens: 200000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'perceptron/perceptron-mk1', + provider: 'openrouter', + name: 'Perceptron Mk1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.15, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'perceptron/perceptron-mk1.5', + provider: 'openrouter', + name: 'Perceptron Mk1.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 36864, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'perplexity/sonar', + provider: 'openrouter', + name: 'Sonar', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 1, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 127072, + maxTokens: 114364, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'perplexity/sonar-deep-research', + provider: 'openrouter', + name: 'Sonar Deep Research', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 2, output: 8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 115200, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'perplexity/sonar-pro', + provider: 'openrouter', + name: 'Sonar Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 3, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 8000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'perplexity/sonar-pro-search', + provider: 'openrouter', + name: 'Sonar Pro Search', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 8000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'perplexity/sonar-reasoning-pro', + provider: 'openrouter', + name: 'Sonar Reasoning Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 2, output: 8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 115200, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'poolside/laguna-s-2.1', + provider: 'openrouter', + name: 'Laguna S 2.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.09, output: 0.18, cacheRead: 0.009, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'poolside/laguna-s-2.1:free', + provider: 'openrouter', + name: 'Laguna S 2.1 (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'poolside/laguna-xs-2.1', + provider: 'openrouter', + name: 'Laguna XS 2.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.06, output: 0.12, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'poolside/laguna-xs-2.1:free', + provider: 'openrouter', + name: 'Laguna XS 2.1 (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'prism-ml/ternary-bonsai-2-27b', + provider: 'openrouter', + name: 'Ternary Bonsai 2 27B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.075, output: 0.5, cacheRead: 0.0375, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen-2.5-72b-instruct', + provider: 'openrouter', + name: 'Qwen2.5 72B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.36, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen-2.5-7b-instruct', + provider: 'openrouter', + name: 'Qwen2.5 7B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 29491, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen-2.5-coder-32b-instruct', + provider: 'openrouter', + name: 'Qwen2.5 Coder 32B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.66, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 29491, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen-plus', + provider: 'openrouter', + name: 'Qwen Plus', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { + input: 0.26, + output: 0.78, + cacheRead: 0.052, + cacheWrite: 0.325, + tiers: [ + { + inputTokensAbove: 256000, + input: 0.78, + output: 2.34, + cacheRead: 0.156, + cacheWrite: 0.975, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen-plus-2025-07-28', + provider: 'openrouter', + name: 'Qwen Plus 0728', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { + input: 0.26, + output: 0.78, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 256000, + input: 0.78, + output: 2.34, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen2.5-vl-72b-instruct', + provider: 'openrouter', + name: 'Qwen2.5 VL 72B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.8, output: 1, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 115200, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-14b', + provider: 'openrouter', + name: 'Qwen3 14B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.12, output: 0.24, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-235b-a22b', + provider: 'openrouter', + name: 'Qwen3 235B-A22B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.455, output: 1.82, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-235b-a22b-2507', + provider: 'openrouter', + name: 'Qwen3 235B A22B Instruct 2507', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.0875, output: 0.35, cacheRead: 0.0175, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-235b-a22b-thinking-2507', + provider: 'openrouter', + name: 'Qwen3 235B A22B Thinking 2507', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.23, output: 2.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-30b-a3b', + provider: 'openrouter', + name: 'Qwen3 30B A3B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.13, output: 0.52, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-30b-a3b-instruct-2507', + provider: 'openrouter', + name: 'Qwen3 30B A3B Instruct 2507', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.04815, output: 0.19305, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-30b-a3b-thinking-2507', + provider: 'openrouter', + name: 'Qwen3 30B A3B Thinking 2507', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.2, output: 2.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 81920, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-32b', + provider: 'openrouter', + name: 'Qwen3 32B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.08, output: 0.28, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-8b', + provider: 'openrouter', + name: 'Qwen3 8B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.117, output: 0.455, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-coder', + provider: 'openrouter', + name: 'Qwen3 Coder 480B A35B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 1, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-coder-30b-a3b-instruct', + provider: 'openrouter', + name: 'Qwen3-Coder 30B-A3B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.07, output: 0.28, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-coder-flash', + provider: 'openrouter', + name: 'Qwen3 Coder Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { + input: 0.195, + output: 0.975, + cacheRead: 0.039, + cacheWrite: 0.24375, + tiers: [ + { + inputTokensAbove: 32000, + input: 0.325, + output: 1.625, + cacheRead: 0.065, + cacheWrite: 0.40625, + }, + { + inputTokensAbove: 128000, + input: 0.52, + output: 2.6, + cacheRead: 0.104, + cacheWrite: 0.65, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-coder-next', + provider: 'openrouter', + name: 'Qwen3 Coder Next', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.12, output: 0.8, cacheRead: 0.07, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-coder-plus', + provider: 'openrouter', + name: 'Qwen3 Coder Plus', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { + input: 0.65, + output: 3.25, + cacheRead: 0.13, + cacheWrite: 0.8125, + tiers: [ + { + inputTokensAbove: 32000, + input: 1.17, + output: 5.85, + cacheRead: 0.234, + cacheWrite: 1.4625, + }, + { + inputTokensAbove: 128000, + input: 1.95, + output: 9.75, + cacheRead: 0.39, + cacheWrite: 2.4375, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-max', + provider: 'openrouter', + name: 'Qwen3 Max', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { + input: 0.78, + output: 3.9, + cacheRead: 0.156, + cacheWrite: 0.975, + tiers: [ + { + inputTokensAbove: 32000, + input: 1.56, + output: 7.8, + cacheRead: 0.312, + cacheWrite: 1.95, + }, + { + inputTokensAbove: 128000, + input: 1.95, + output: 9.75, + cacheRead: 0.39, + cacheWrite: 2.4375, + }, + ], + }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-max-thinking', + provider: 'openrouter', + name: 'Qwen3 Max Thinking', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.78, + output: 3.9, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32000, + input: 1.56, + output: 7.8, + cacheRead: 0, + cacheWrite: 0, + }, + { + inputTokensAbove: 128000, + input: 1.95, + output: 9.75, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-next-80b-a3b-instruct', + provider: 'openrouter', + name: 'Qwen3-Next 80B-A3B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 1.1, cacheRead: 0.07, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-next-80b-a3b-thinking', + provider: 'openrouter', + name: 'Qwen3-Next 80B-A3B (Thinking)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-235b-a22b-instruct', + provider: 'openrouter', + name: 'Qwen3 VL 235B A22B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.21, output: 1.9, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-235b-a22b-thinking', + provider: 'openrouter', + name: 'Qwen3 VL 235B A22B Thinking', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.4, output: 4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-30b-a3b-instruct', + provider: 'openrouter', + name: 'Qwen3 VL 30B A3B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-30b-a3b-thinking', + provider: 'openrouter', + name: 'Qwen3 VL 30B A3B Thinking', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.2, output: 2.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-32b-instruct', + provider: 'openrouter', + name: 'Qwen3 VL 32B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.104, output: 0.416, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-8b-instruct', + provider: 'openrouter', + name: 'Qwen3 VL 8B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.117, output: 0.455, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3-vl-8b-thinking', + provider: 'openrouter', + name: 'Qwen3 VL 8B Thinking', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.18, output: 2.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-122b-a10b', + provider: 'openrouter', + name: 'Qwen3.5 122B-A10B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.26, output: 2.08, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-27b', + provider: 'openrouter', + name: 'Qwen3.5 27B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.195, output: 1.56, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-35b-a3b', + provider: 'openrouter', + name: 'Qwen3.5 35B-A3B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.1625, output: 1.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-397b-a17b', + provider: 'openrouter', + name: 'Qwen3.5 397B-A17B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.55, output: 3.5, cacheRead: 0.225, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-9b', + provider: 'openrouter', + name: 'Qwen3.5 9B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.1, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-flash-02-23', + provider: 'openrouter', + name: 'Qwen3.5-Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.065, output: 0.26, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-plus-02-15', + provider: 'openrouter', + name: 'Qwen3.5 Plus 2026-02-15', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.26, + output: 1.56, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 256000, + input: 0.325, + output: 1.95, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.5-plus-20260420', + provider: 'openrouter', + name: 'Qwen3.5 Plus 2026-04-20', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.3, + output: 1.8, + cacheRead: 0, + cacheWrite: 0.375, + tiers: [ + { + inputTokensAbove: 256000, + input: 0.375, + output: 2.25, + cacheRead: 0, + cacheWrite: 0.46875, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.6-27b', + provider: 'openrouter', + name: 'Qwen3.6 27B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.32, output: 3.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 81920, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.6-35b-a3b', + provider: 'openrouter', + name: 'Qwen3.6 35B-A3B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.15, output: 1, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.6-flash', + provider: 'openrouter', + name: 'Qwen3.6 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.1875, + output: 1.125, + cacheRead: 0, + cacheWrite: 0.234375, + tiers: [ + { + inputTokensAbove: 256000, + input: 0.75, + output: 3, + cacheRead: 0, + cacheWrite: 0.9375, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.6-max-preview', + provider: 'openrouter', + name: 'Qwen3.6 Max Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 1.027, + output: 6.162, + cacheRead: 0, + cacheWrite: 1.28375, + tiers: [ + { + inputTokensAbove: 128000, + input: 1.58, + output: 9.48, + cacheRead: 0, + cacheWrite: 1.975, + }, + ], + }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.6-plus', + provider: 'openrouter', + name: 'Qwen3.6 Plus', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.325, + output: 1.95, + cacheRead: 0, + cacheWrite: 0.40625, + tiers: [ + { + inputTokensAbove: 256000, + input: 1.3, + output: 3.9, + cacheRead: 0, + cacheWrite: 1.625, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.7-flash', + provider: 'openrouter', + name: 'Qwen3.7 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.03, + output: 0.13, + cacheRead: 0.006, + cacheWrite: 0.038, + tiers: [ + { + inputTokensAbove: 32000, + input: 0.1, + output: 0.4, + cacheRead: 0.02, + cacheWrite: 0.125, + }, + { + inputTokensAbove: 256000, + input: 0.2, + output: 0.8, + cacheRead: 0.04, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.7-max', + provider: 'openrouter', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 1.475, + output: 4.425, + cacheRead: 0.295, + cacheWrite: 1.84375, + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.7-plus', + provider: 'openrouter', + name: 'Qwen3.7 Plus', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.32, + output: 1.28, + cacheRead: 0.064, + cacheWrite: 0.4, + tiers: [ + { + inputTokensAbove: 256000, + input: 0.96, + output: 3.84, + cacheRead: 0.192, + cacheWrite: 1.2, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-2.4t-a95b', + provider: 'openrouter', + name: 'Qwen3.8 2.4T A95B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-27b', + provider: 'openrouter', + name: 'Qwen3.8 27B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.0249, output: 4.35, cacheRead: 0.0199, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-27b:free', + provider: 'openrouter', + name: 'Qwen3.8 27B (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-flash', + provider: 'openrouter', + name: 'Qwen3.8 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0.2 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-max-0902', + provider: 'openrouter', + name: 'Qwen3.8 Max 0902', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-max-prime', + provider: 'openrouter', + name: 'Qwen 3.8 Max Prime', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 4, output: 12, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'qwen/qwen3.8-omni-flash', + provider: 'openrouter', + name: 'Qwen3.8 Omni Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'rekaai/reka-edge', + provider: 'openrouter', + name: 'Reka Edge', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: false, + cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16384, + maxTokens: 14745, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'rekaai/reka-flash-3', + provider: 'openrouter', + name: 'Reka Flash 3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 58982, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'relace/relace-apply-3', + provider: 'openrouter', + name: 'Relace Apply 3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.85, output: 1.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'relace/relace-search', + provider: 'openrouter', + name: 'Relace Search', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'sakana/fugu-max', + provider: 'openrouter', + name: 'Fugu Max', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { high: 'high', xhigh: 'xhigh', max: 'max' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'sakana/fugu-ultra', + provider: 'openrouter', + name: 'Fugu Ultra', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { + levels: { high: 'high', xhigh: 'xhigh', max: 'max' }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'sakana/fugu-ultra-v2', + provider: 'openrouter', + name: 'Fugu Ultra v2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { high: 'high', xhigh: 'xhigh', max: 'max' }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'sakana/sakana-namazu', + provider: 'openrouter', + name: 'Sakana Namazu', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + supportsTemperature: false, + }, + }, + { + id: 'sao10k/l3-lunaris-8b', + provider: 'openrouter', + name: 'Llama 3 8B Lunaris', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.05, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 7372, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'sao10k/l3.1-euryale-70b', + provider: 'openrouter', + name: 'Llama 3.1 Euryale 70B v2.2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.85, output: 0.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'sao10k/l3.3-euryale-70b', + provider: 'openrouter', + name: 'Llama 3.3 Euryale 70B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.65, output: 0.75, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'stealth/space-bunny-alpha', + provider: 'openrouter', + name: 'Space Bunny Alpha', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 524288, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'stepfun/step-3.5-flash', + provider: 'openrouter', + name: 'Step 3.5 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'stepfun/step-3.7-flash', + provider: 'openrouter', + name: 'Step 3.7 Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2, output: 1.15, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 230400, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hunyuan-a13b-instruct', + provider: 'openrouter', + name: 'Hunyuan A13B Instruct', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.57, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hy-mt2-1.8b', + provider: 'openrouter', + name: 'Hy-MT2-1.8B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.044, output: 0.177, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hy-mt2-30b-a3b', + provider: 'openrouter', + name: 'Hy-MT2-30B-A3B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.074, output: 0.295, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hy-mt2-7b', + provider: 'openrouter', + name: 'Hy-MT2-7B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.074, output: 0.295, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 4096, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hy3', + provider: 'openrouter', + name: 'Hy3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.132, output: 0.528, cacheRead: 0.033, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hy3-preview', + provider: 'openrouter', + name: 'Hy3 preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.18, output: 0.6, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'tencent/hy4-preview', + provider: 'openrouter', + name: 'Hy4 preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.834, output: 2.501, cacheRead: 0.042, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 64000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thedrummer/cydonia-24b-v4.1', + provider: 'openrouter', + name: 'Cydonia 24B V4.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 0.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thedrummer/skyfall-36b-v2', + provider: 'openrouter', + name: 'Skyfall 36B V2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.55, output: 0.8, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 29491, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thedrummer/unslopnemo-12b', + provider: 'openrouter', + name: 'UnslopNemo 12B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.4, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1024000, + maxTokens: 819200, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thinkingmachines/inkling', + provider: 'openrouter', + name: 'Inkling', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 471859, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thinkingmachines/inkling-small', + provider: 'openrouter', + name: 'Inkling Small', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.45, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 262144, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thinkingmachines/inkling-small:free', + provider: 'openrouter', + name: 'Inkling Small (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'thinkingmachines/inkling:free', + provider: 'openrouter', + name: 'Inkling (free)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'unbiased/pareto', + provider: 'openrouter', + name: 'Pareto', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2.5, output: 7.5, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'unbiased/pareto-26.10-preview', + provider: 'openrouter', + name: 'Pareto 26.10 Preview', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.8, output: 3.2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'undi95/remm-slerp-l2-13b', + provider: 'openrouter', + name: 'ReMM SLERP 13B', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.35, output: 0.65, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 6144, + maxTokens: 5529, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'upstage/solar-mini4', + provider: 'openrouter', + name: 'Solar Mini 4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.2, cacheRead: 0.005, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'upstage/solar-pro-3', + provider: 'openrouter', + name: 'Solar Pro 3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'upstage/solar-pro4', + provider: 'openrouter', + name: 'Solar Pro 4', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.09, output: 0.36, cacheRead: 0.018, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'writer/palmyra-x5', + provider: 'openrouter', + name: 'Palmyra X5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.6, output: 6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1040000, + maxTokens: 8192, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.20', + provider: 'openrouter', + name: 'Grok 4.20', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 1800000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.20-multi-agent', + provider: 'openrouter', + name: 'Grok 4.20 Multi-Agent', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 1800000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.3', + provider: 'openrouter', + name: 'Grok 4.3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 900000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.3:batch', + provider: 'openrouter', + name: 'SpaceXAI: Grok 4.3 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1, output: 2, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 900000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.5', + provider: 'openrouter', + name: 'Grok 4.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 450000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.6', + provider: 'openrouter', + name: 'Grok 4.6', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 450000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-4.7', + provider: 'openrouter', + name: 'Grok 4.7', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 450000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'x-ai/grok-build-0.1', + provider: 'openrouter', + name: 'Grok Build 0.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1, + output: 2, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2, + output: 4, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 256000, + maxTokens: 230400, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'xiaomi/mimo-v2.5', + provider: 'openrouter', + name: 'MiMo-V2.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'xiaomi/mimo-v2.5-pro', + provider: 'openrouter', + name: 'MiMo-V2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'xiaomi/mimo-v2.6-flash', + provider: 'openrouter', + name: 'MiMo-V2.6-Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'xiaomi/mimo-v2.6-pro', + provider: 'openrouter', + name: 'MiMo-V2.6-Pro', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'xiaomi/mimo-v2.6-pro-ultraspeed', + provider: 'openrouter', + name: 'MiMo-V2.6-Pro-UltraSpeed', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 4.35, output: 8.7, cacheRead: 0.036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.5', + provider: 'openrouter', + name: 'GLM-4.5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.5-air', + provider: 'openrouter', + name: 'GLM-4.5-Air', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.13, output: 0.85, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.5v', + provider: 'openrouter', + name: 'GLM-4.5V', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 1.8, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.6', + provider: 'openrouter', + name: 'GLM-4.6', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.43, output: 1.75, cacheRead: 0.08, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 16384, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.6v', + provider: 'openrouter', + name: 'GLM-4.6V', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 0.9, cacheRead: 0.055, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.7', + provider: 'openrouter', + name: 'GLM-4.7', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-4.7-flash', + provider: 'openrouter', + name: 'GLM-4.7-Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.0605, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 117964, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5', + provider: 'openrouter', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 1.92, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 128000, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'z-ai/glm-5-turbo', + provider: 'openrouter', + name: 'GLM-5-Turbo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'z-ai/glm-5.1', + provider: 'openrouter', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'z-ai/glm-5.2', + provider: 'openrouter', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.41, output: 3.99, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943718, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'z-ai/glm-5.3', + provider: 'openrouter', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943717, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5.3-flash', + provider: 'openrouter', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 943717, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5.3-flash:batch', + provider: 'openrouter', + name: 'Z.ai: GLM 5.3 Flash (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.06, output: 0.2, cacheRead: 0.012, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5.3-flashx', + provider: 'openrouter', + name: 'GLM 5.3 FlashX', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.37, output: 1.25, cacheRead: 0.09, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5.3-prime', + provider: 'openrouter', + name: 'GLM 5.3 Prime', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 2.8, output: 8.8, cacheRead: 0.56, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5.3:batch', + provider: 'openrouter', + name: 'Z.ai: GLM 5.3 (batch)', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.45, output: 2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, + { + id: 'z-ai/glm-5v-turbo', + provider: 'openrouter', + name: 'GLM-5V-Turbo', + api: 'openai-completions', + baseUrl: 'https://openrouter.ai/api/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + compat: { + thinkingFormat: 'openrouter', + supportsStrictMode: true, + sendSessionAffinityHeaders: true, + sessionAffinityFormat: 'openrouter', + supportsDeveloperRole: false, + }, + }, +] diff --git a/packages/ai-models/src/providers/qwen-token-plan-cn.ts b/packages/ai-models/src/providers/qwen-token-plan-cn.ts new file mode 100644 index 0000000000..fc39d3985e --- /dev/null +++ b/packages/ai-models/src/providers/qwen-token-plan-cn.ts @@ -0,0 +1,553 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Qwen Token Plan (China). */ +export const provider: ProviderRecord = { + id: 'qwen-token-plan-cn', + name: 'Qwen Token Plan (China)', + baseUrl: 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + apis: ['openai-completions'], + env: [['QWEN_TOKEN_PLAN_CN_API_KEY']], +} + +/** Every Qwen Token Plan (China) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-v3.2', + provider: 'qwen-token-plan-cn', + name: 'DeepSeek-V3.2', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.26, output: 0.38, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V3.2', + }, + { + id: 'deepseek-v4-flash', + provider: 'qwen-token-plan-cn', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-v4-flash-0731', + provider: 'qwen-token-plan-cn', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.06, output: 0.18, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4-Flash-0731', + }, + { + id: 'deepseek-v4-pro', + provider: 'qwen-token-plan-cn', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-v4-pro-0813', + provider: 'qwen-token-plan-cn', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.3, output: 2.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + }, + { + id: 'deepseek-v4.1-flash', + provider: 'qwen-token-plan-cn', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { + input: 0.29754, + output: 1.19015, + cacheRead: 0.01488, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5', + provider: 'qwen-token-plan-cn', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.573, + output: 2.58, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32000, + input: 0.86, + output: 3.154, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 202752, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5.1', + provider: 'qwen-token-plan-cn', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.825, + output: 3.301, + cacheRead: 0.17, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32000, + input: 1.1, + output: 3.851, + cacheRead: 0.17, + cacheWrite: 0, + }, + ], + }, + contextWindow: 202752, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5.2', + provider: 'qwen-token-plan-cn', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.1, output: 3.851, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5.3', + provider: 'qwen-token-plan-cn', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.1, output: 3.851, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'kimi-k2.5', + provider: 'qwen-token-plan-cn', + name: 'Moonshot Kimi K2.5', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.574, output: 2.411, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k2.6', + provider: 'qwen-token-plan-cn', + name: 'Moonshot Kimi K2.6', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.929, output: 3.858, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'kimi-k2.7-code', + provider: 'qwen-token-plan-cn', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: false, + }, + borrowedFrom: 'moonshotai/kimi-k2.7-code', + }, + { + id: 'MiniMax-M2.5', + provider: 'qwen-token-plan-cn', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.6-flash', + provider: 'qwen-token-plan-cn', + name: 'Qwen3.6 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.1875, output: 1.125, cacheRead: 0, cacheWrite: 0.234375 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.6-plus', + provider: 'qwen-token-plan-cn', + name: 'Qwen3.6 Plus', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.5, + output: 3, + cacheRead: 0.05, + cacheWrite: 0.625, + tiers: [ + { + inputTokensAbove: 256000, + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 2.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.7-max', + provider: 'qwen-token-plan-cn', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.7-plus', + provider: 'qwen-token-plan-cn', + name: 'Qwen3.7 Plus', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.5, + output: 3, + cacheRead: 0.05, + cacheWrite: 0.625, + tiers: [ + { + inputTokensAbove: 128000, + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 2.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.8-flash', + provider: 'qwen-token-plan-cn', + name: 'Qwen3.8 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { + input: 0.11875, + output: 0.40073, + cacheRead: 0.01187, + cacheWrite: 0.14844, + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'qwen3.8-max', + provider: 'qwen-token-plan-cn', + name: 'Qwen3.8 Max', + api: 'openai-completions', + baseUrl: + 'https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { + input: 1.77744, + output: 5.33231, + cacheRead: 0.22218, + cacheWrite: 2.22179, + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/qwen-token-plan-individual.ts b/packages/ai-models/src/providers/qwen-token-plan-individual.ts new file mode 100644 index 0000000000..908de4f9d2 --- /dev/null +++ b/packages/ai-models/src/providers/qwen-token-plan-individual.ts @@ -0,0 +1,244 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Qwen Token Plan (Individual). */ +export const provider: ProviderRecord = { + id: 'qwen-token-plan-individual', + name: 'Qwen Token Plan (Individual)', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + apis: ['openai-completions'], + env: [['QWEN_TOKEN_PLAN_API_KEY']], +} + +/** Every Qwen Token Plan (Individual) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-v4-flash-0731', + provider: 'qwen-token-plan-individual', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.2, output: 0.4, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-v4-pro', + provider: 'qwen-token-plan-individual', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepseek/deepseek-v4-pro', + }, + { + id: 'deepseek-v4-pro-0813', + provider: 'qwen-token-plan-individual', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.3, output: 2.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + }, + { + id: 'glm-5.2', + provider: 'qwen-token-plan-individual', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.28, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'qwen3.6-flash', + provider: 'qwen-token-plan-individual', + name: 'Qwen3.6 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.1875, output: 1.125, cacheRead: 0, cacheWrite: 0.234375 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.7-max', + provider: 'qwen-token-plan-individual', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.7-plus', + provider: 'qwen-token-plan-individual', + name: 'Qwen3.7 Plus', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.4, + output: 1.6, + cacheRead: 0.04, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 256000, + input: 1.2, + output: 4.8, + cacheRead: 0.12, + cacheWrite: 1.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.8-flash', + provider: 'qwen-token-plan-individual', + name: 'Qwen3.8 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0.2 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'qwen3.8-max', + provider: 'qwen-token-plan-individual', + name: 'Qwen3.8 Max', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/qwen-token-plan.ts b/packages/ai-models/src/providers/qwen-token-plan.ts new file mode 100644 index 0000000000..e1f898ef9f --- /dev/null +++ b/packages/ai-models/src/providers/qwen-token-plan.ts @@ -0,0 +1,530 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Qwen Token Plan. */ +export const provider: ProviderRecord = { + id: 'qwen-token-plan', + name: 'Qwen Token Plan', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + apis: ['openai-completions'], + env: [['QWEN_TOKEN_PLAN_API_KEY']], +} + +/** Every Qwen Token Plan model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepseek-v3.2', + provider: 'qwen-token-plan', + name: 'DeepSeek-V3.2', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.26, output: 0.38, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 64000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V3.2', + }, + { + id: 'deepseek-v4-flash', + provider: 'qwen-token-plan', + name: 'DeepSeek V4 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.003, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepseek/deepseek-v4-flash', + }, + { + id: 'deepseek-v4-flash-0731', + provider: 'qwen-token-plan', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.2, output: 0.4, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'deepseek-v4-pro', + provider: 'qwen-token-plan', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.003625, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 393216, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepseek/deepseek-v4-pro', + }, + { + id: 'deepseek-v4-pro-0813', + provider: 'qwen-token-plan', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.3, output: 2.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4-Pro-0813', + }, + { + id: 'deepseek-v4.1-flash', + provider: 'qwen-token-plan', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + low: 'low', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.2, output: 0.6, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: true, + }, + borrowedFrom: 'deepinfra/deepseek-ai/DeepSeek-V4.1-Flash', + }, + { + id: 'glm-5', + provider: 'qwen-token-plan', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + borrowedFrom: 'zai/glm-5', + }, + { + id: 'glm-5.1', + provider: 'qwen-token-plan', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + borrowedFrom: 'zai/glm-5.1', + }, + { + id: 'glm-5.2', + provider: 'qwen-token-plan', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.28, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3', + provider: 'qwen-token-plan', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + borrowedFrom: 'zai/glm-5.3', + }, + { + id: 'kimi-k2.5', + provider: 'qwen-token-plan', + name: 'Kimi K2.5', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.45, output: 2.25, cacheRead: 0.07, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + borrowedFrom: 'deepinfra/moonshotai/Kimi-K2.5', + }, + { + id: 'kimi-k2.6', + provider: 'qwen-token-plan', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + borrowedFrom: 'moonshotai/kimi-k2.6', + }, + { + id: 'kimi-k2.7-code', + provider: 'qwen-token-plan', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + supportsReasoningEffort: false, + }, + borrowedFrom: 'moonshotai/kimi-k2.7-code', + }, + { + id: 'MiniMax-M2.5', + provider: 'qwen-token-plan', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + borrowedFrom: 'minimax/MiniMax-M2.5', + }, + { + id: 'qwen3.6-flash', + provider: 'qwen-token-plan', + name: 'Qwen3.6 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.1875, output: 1.125, cacheRead: 0, cacheWrite: 0.234375 }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.6-plus', + provider: 'qwen-token-plan', + name: 'Qwen3.6 Plus', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.5, + output: 3, + cacheRead: 0.05, + cacheWrite: 0.625, + tiers: [ + { + inputTokensAbove: 256000, + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 2.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.7-max', + provider: 'qwen-token-plan', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.7-plus', + provider: 'qwen-token-plan', + name: 'Qwen3.7 Plus', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 0.4, + output: 1.6, + cacheRead: 0.04, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 256000, + input: 1.2, + output: 4.8, + cacheRead: 0.12, + cacheWrite: 1.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'qwen3.8-flash', + provider: 'qwen-token-plan', + name: 'Qwen3.8 Flash', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0.2 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'qwen3.8-max', + provider: 'qwen-token-plan', + name: 'Qwen3.8 Max', + api: 'openai-completions', + baseUrl: + 'https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsStrictMode: true, + thinkingFormat: 'qwen', + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/together.ts b/packages/ai-models/src/providers/together.ts new file mode 100644 index 0000000000..319b20dcb3 --- /dev/null +++ b/packages/ai-models/src/providers/together.ts @@ -0,0 +1,931 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Together AI. */ +export const provider: ProviderRecord = { + id: 'together', + name: 'Together AI', + baseUrl: 'https://api.together.ai/v1', + apis: ['openai-completions'], + env: [['TOGETHER_API_KEY']], +} + +/** Every Together AI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'deepcogito/cogito-v2-1-671b', + provider: 'together', + name: 'Cogito v2.1 671B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.25, output: 1.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 163840, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'deepseek-ai/DeepSeek-R1', + provider: 'together', + name: 'DeepSeek-R1', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 3, output: 7, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 163839, + maxTokens: 163839, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'deepseek-ai/DeepSeek-V3', + provider: 'together', + name: 'DeepSeek-V3', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 1.25, output: 1.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'deepseek-ai/DeepSeek-V3-1', + provider: 'together', + name: 'DeepSeek V3.1', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 1.7, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Flash-0731', + provider: 'together', + name: 'DeepSeek V4 Flash 0731', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Pro', + provider: 'together', + name: 'DeepSeek V4 Pro', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.74, output: 3.48, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 512000, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4-Pro-0813', + provider: 'together', + name: 'DeepSeek V4 Pro 0813', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.32, output: 3.96, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'deepseek-ai/DeepSeek-V4.1-Flash', + provider: 'together', + name: 'DeepSeek V4.1 Flash', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 384000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'essentialai/Rnj-1-Instruct', + provider: 'together', + name: 'Rnj-1 Instruct', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'google/gemma-3n-E4B-it', + provider: 'together', + name: 'Gemma 3N E4B Instruct', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.06, output: 0.12, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'google/gemma-4-31B-it', + provider: 'together', + name: 'Gemma 4 31B Instruct', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.39, output: 0.97, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'LiquidAI/LFM2-24B-A2B', + provider: 'together', + name: 'LFM2-24B-A2B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.03, output: 0.12, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'meta-llama/Llama-3.3-70B-Instruct-Turbo', + provider: 'together', + name: 'Llama 3.3 70B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 1.04, output: 1.04, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'meta-llama/Meta-Llama-3-8B-Instruct-Lite', + provider: 'together', + name: 'Meta Llama 3 8B Instruct Lite', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.14, output: 0.14, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 8192, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'MiniMaxAI/MiniMax-M2.5', + provider: 'together', + name: 'MiniMax-M2.5', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'MiniMaxAI/MiniMax-M2.7', + provider: 'together', + name: 'MiniMax-M2.7', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 196608, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'MiniMaxAI/MiniMax-M3', + provider: 'together', + name: 'MiniMax-M3', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 250000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'moonshotai/Kimi-K2.6', + provider: 'together', + name: 'Kimi K2.6', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + borrowedFrom: 'moonshotai/kimi-k2.6', + }, + { + id: 'moonshotai/Kimi-K2.7-Code', + provider: 'together', + name: 'Kimi K2.7 Code', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + borrowedFrom: 'moonshotai/kimi-k2.7-code', + }, + { + id: 'moonshotai/Kimi-K3', + provider: 'together', + name: 'Kimi K3', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + supportsTemperature: false, + }, + }, + { + id: 'nvidia/nemotron-3-ultra-550b-a55b', + provider: 'together', + name: 'Nemotron 3 Ultra 550B A55B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 3.6, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 512300, + maxTokens: 512300, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'openai/gpt-oss-120b', + provider: 'together', + name: 'GPT OSS 120B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'openai/gpt-oss-20b', + provider: 'together', + name: 'GPT OSS 20B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.05, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'pearl-ai/gemma-4-31b-it', + provider: 'together', + name: 'Pearl AI Gemma 4 31B Instruct', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.28, output: 0.86, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 32000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen2.5-7B-Instruct-Turbo', + provider: 'together', + name: 'Qwen 2.5 7B Instruct Turbo', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 0.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3-235B-A22B-Instruct-2507-tput', + provider: 'together', + name: 'Qwen3 235B A22B Instruct 2507 FP8', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.2, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8', + provider: 'together', + name: 'Qwen3 Coder 480B A35B Instruct', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 2, output: 2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3-Coder-Next-FP8', + provider: 'together', + name: 'Qwen3 Coder Next FP8', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 0.5, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3.5-397B-A17B', + provider: 'together', + name: 'Qwen3.5 397B A17B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 3.6, cacheRead: 0.35, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 130000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3.5-9B', + provider: 'together', + name: 'Qwen3.5 9B', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.17, output: 0.25, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3.6-Plus', + provider: 'together', + name: 'Qwen3.6 Plus', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 500000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'Qwen/Qwen3.7-Max', + provider: 'together', + name: 'Qwen3.7 Max', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: false, + cost: { input: 1.25, output: 3.75, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 500000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'thinkingmachines/Inkling', + provider: 'together', + name: 'Inkling', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image', 'audio'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'zai-org/GLM-5', + provider: 'together', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-5.1', + provider: 'together', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 202752, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + }, + }, + { + id: 'zai-org/GLM-5.2', + provider: 'together', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048575, + maxTokens: 164000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-5.3', + provider: 'together', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, + { + id: 'zai-org/GLM-5.3-Flash', + provider: 'together', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://api.together.ai/v1', + input: ['text', 'image', 'video'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048575, + maxTokens: 400000, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + supportsReasoningEffort: false, + maxTokensField: 'max_tokens', + supportsLongCacheRetention: false, + supportsStrictMode: false, + thinkingFormat: 'together', + requiresReasoningContentOnAssistantMessages: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/vercel-ai-gateway.ts b/packages/ai-models/src/providers/vercel-ai-gateway.ts new file mode 100644 index 0000000000..d7f3708384 --- /dev/null +++ b/packages/ai-models/src/providers/vercel-ai-gateway.ts @@ -0,0 +1,5701 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Vercel AI Gateway. */ +export const provider: ProviderRecord = { + id: 'vercel-ai-gateway', + name: 'Vercel AI Gateway', + baseUrl: 'https://ai-gateway.vercel.sh', + apis: ['anthropic-messages'], + env: [['AI_GATEWAY_API_KEY']], +} + +/** Every Vercel AI Gateway model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'alibaba/qwen-3-14b', + provider: 'vercel-ai-gateway', + name: 'Qwen3-14B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.12, output: 0.24, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 40960, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen-3-235b', + provider: 'vercel-ai-gateway', + name: 'Qwen3 235B A22B Instruct 2507', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.22, output: 0.88, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen-3-30b', + provider: 'vercel-ai-gateway', + name: 'Qwen3-30B-A3B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.12, output: 0.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 40960, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen-3-32b', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.32B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.16, output: 0.64, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen-3.6-max-preview', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.6 Max Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 1.3, + output: 7.8, + cacheRead: 0.13, + cacheWrite: 1.625, + tiers: [ + { + inputTokensAbove: 128000, + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + }, + ], + }, + contextWindow: 240000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-235b-a22b-thinking', + provider: 'vercel-ai-gateway', + name: 'Qwen3 235B A22B Thinking 2507', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.4, output: 4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-coder', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Coder 480B A35B Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1.5, + output: 7.5, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32001, + input: 2.7, + output: 13.5, + cacheRead: 0.54, + cacheWrite: 0, + }, + { + inputTokensAbove: 128001, + input: 4.5, + output: 22.5, + cacheRead: 0.9, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-coder-30b-a3b', + provider: 'vercel-ai-gateway', + name: 'Qwen 3 Coder 30B A3B Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 8192, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-coder-next', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Coder Next', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.5, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-coder-plus', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Coder Plus', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { + input: 1, + output: 5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32001, + input: 1.8, + output: 9, + cacheRead: 0.36, + cacheWrite: 0, + }, + { + inputTokensAbove: 128001, + input: 3, + output: 15, + cacheRead: 0.6, + cacheWrite: 0, + }, + { + inputTokensAbove: 256001, + input: 6, + output: 60, + cacheRead: 1.2, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-max', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Max', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { + input: 1.2, + output: 6, + cacheRead: 0.24, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32001, + input: 2.4, + output: 12, + cacheRead: 0.48, + cacheWrite: 0, + }, + { + inputTokensAbove: 128001, + input: 3, + output: 15, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-max-preview', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Max Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { + input: 1.2, + output: 6, + cacheRead: 0.24, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32001, + input: 2.4, + output: 12, + cacheRead: 0.48, + cacheWrite: 0, + }, + { + inputTokensAbove: 128001, + input: 3, + output: 15, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 262144, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-max-thinking', + provider: 'vercel-ai-gateway', + name: 'Qwen 3 Max Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 1.2, + output: 6, + cacheRead: 0.24, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 32001, + input: 2.4, + output: 12, + cacheRead: 0.48, + cacheWrite: 0, + }, + { + inputTokensAbove: 128001, + input: 3, + output: 15, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 256000, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-next-80b-a3b-instruct', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Next 80B A3B Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262114, + maxTokens: 262114, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-next-80b-a3b-thinking', + provider: 'vercel-ai-gateway', + name: 'Qwen3 Next 80B A3B Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-vl-235b-a22b-instruct', + provider: 'vercel-ai-gateway', + name: 'Qwen3 VL 235B A22B Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 129024, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-vl-instruct', + provider: 'vercel-ai-gateway', + name: 'Qwen3 VL Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 129024, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3-vl-thinking', + provider: 'vercel-ai-gateway', + name: 'Qwen3 VL Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.4, output: 4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.5-flash', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.5 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0.125 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.5-plus', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.5 Plus', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { + input: 0.4, + output: 2.4, + cacheRead: 0.04, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 256001, + input: 0.5, + output: 3, + cacheRead: 0.05, + cacheWrite: 0.625, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.6-27b', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.6 27B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.6, output: 3.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.6-plus', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.6 Plus', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { + input: 0.5, + output: 3, + cacheRead: 0.05, + cacheWrite: 0.625, + tiers: [ + { + inputTokensAbove: 256000, + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 2.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.7-flash', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.7 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { + input: 0.03, + output: 0.13, + cacheRead: 0.006, + cacheWrite: 0.038, + tiers: [ + { + inputTokensAbove: 32000, + input: 0.1, + output: 0.4, + cacheRead: 0.02, + cacheWrite: 0.125, + }, + { + inputTokensAbove: 256000, + input: 0.2, + output: 0.8, + cacheRead: 0.04, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 991000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.7-max', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.7 Max', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, + contextWindow: 991000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.7-plus', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.7 Plus', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { + input: 0.4, + output: 1.6, + cacheRead: 0.08, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 256000, + input: 1.2, + output: 4.8, + cacheRead: 0.24, + cacheWrite: 1.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-2.4t-a95b', + provider: 'vercel-ai-gateway', + name: 'Qwen3.8 2.4T A95B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-27b', + provider: 'vercel-ai-gateway', + name: 'Qwen3.8 27B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.5, output: 3, cacheRead: 0.1, cacheWrite: 0.625 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-flash', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.8 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0.2 }, + contextWindow: 991000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-max', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.8 Max', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-max-0902', + provider: 'vercel-ai-gateway', + name: 'Qwen3.8 Max 0902', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, + contextWindow: 991000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-max-prime', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.8 Max Prime', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: true, + }, + cost: { input: 4, output: 12, cacheRead: 0.5, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'alibaba/qwen3.8-omni-flash', + provider: 'vercel-ai-gateway', + name: 'Qwen 3.8 Omni Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'amazon/nova-2-lite', + provider: 'vercel-ai-gateway', + name: 'Nova 2 Lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65535, + compat: { allowEmptySignature: true }, + }, + { + id: 'amazon/nova-lite', + provider: 'vercel-ai-gateway', + name: 'Nova Lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.06, output: 0.24, cacheRead: 0.015, cacheWrite: 0.06 }, + contextWindow: 300000, + maxTokens: 10000, + compat: { allowEmptySignature: true }, + }, + { + id: 'amazon/nova-micro', + provider: 'vercel-ai-gateway', + name: 'Nova Micro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.035, output: 0.14, cacheRead: 0.00875, cacheWrite: 0.035 }, + contextWindow: 128000, + maxTokens: 10000, + compat: { allowEmptySignature: true }, + }, + { + id: 'amazon/nova-pro', + provider: 'vercel-ai-gateway', + name: 'Nova Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'video', 'document'], + reasoning: false, + cost: { input: 0.8, output: 3.2, cacheRead: 0.2, cacheWrite: 0.8 }, + contextWindow: 300000, + maxTokens: 10000, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-3-haiku', + provider: 'vercel-ai-gateway', + name: 'Claude Haiku 3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.25, output: 1.25, cacheRead: 0.03, cacheWrite: 0.3 }, + contextWindow: 200000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-fable-5', + provider: 'vercel-ai-gateway', + name: 'Claude Fable 5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-fable-5.1', + provider: 'vercel-ai-gateway', + name: 'Claude Fable 5.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 10, output: 50, cacheRead: 0.25, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-haiku-4.5', + provider: 'vercel-ai-gateway', + name: 'Claude Haiku 4.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-opus-4', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 4', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, + contextWindow: 200000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-opus-4.5', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 4.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 200000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-opus-4.6', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 4.6', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, + }, + { + id: 'anthropic/claude-opus-4.7', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 4.7', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, + }, + { + id: 'anthropic/claude-opus-4.8', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 4.8', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, + }, + { + id: 'anthropic/claude-opus-4.8-fast', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 4.8 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, + }, + { + id: 'anthropic/claude-opus-5', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-5-fast', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 5 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-5.5', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 5.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.2, cacheWrite: 5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-opus-5.5-fast', + provider: 'vercel-ai-gateway', + name: 'Claude Opus 5.5 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 8, output: 40, cacheRead: 0.4, cacheWrite: 10 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-sonnet-4', + provider: 'vercel-ai-gateway', + name: 'Claude Sonnet 4', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200001, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-sonnet-4.5', + provider: 'vercel-ai-gateway', + name: 'Claude Sonnet 4.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'anthropic/claude-sonnet-4.6', + provider: 'vercel-ai-gateway', + name: 'Claude Sonnet 4.6', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: true, + }, + cost: { + input: 3, + output: 15, + cacheRead: 0.3, + cacheWrite: 3.75, + tiers: [ + { + inputTokensAbove: 200000, + input: 6, + output: 22.5, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, + }, + { + id: 'anthropic/claude-sonnet-5', + provider: 'vercel-ai-gateway', + name: 'Claude Sonnet 5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: true, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'anthropic/claude-sonnet-5.5', + provider: 'vercel-ai-gateway', + name: 'Claude Sonnet 5.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { + allowEmptySignature: true, + supportsTemperature: false, + forceAdaptiveThinking: true, + }, + }, + { + id: 'arcee-ai/trinity-large-thinking', + provider: 'vercel-ai-gateway', + name: 'Trinity Large Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 0.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262100, + maxTokens: 80000, + compat: { allowEmptySignature: true }, + }, + { + id: 'bytedance/seed-1.6', + provider: 'vercel-ai-gateway', + name: 'Seed 1.6', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { + input: 0.25, + output: 2, + cacheRead: 0.05, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128001, + input: 0.5, + output: 4, + cacheRead: 0.05, + cacheWrite: 0, + }, + ], + }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'bytedance/seed-1.8', + provider: 'vercel-ai-gateway', + name: 'Seed 1.8', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 0.25, + output: 2, + cacheRead: 0.05, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 128001, + input: 0.5, + output: 4, + cacheRead: 0.05, + cacheWrite: 0, + }, + ], + }, + contextWindow: 256000, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'bytedance/seed-2.1-turbo', + provider: 'vercel-ai-gateway', + name: 'Seed 2.1 Turbo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.5, output: 2.5, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { allowEmptySignature: true }, + }, + { + id: 'cohere/command-a', + provider: 'vercel-ai-gateway', + name: 'Command A', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 8000, + compat: { allowEmptySignature: true }, + }, + { + id: 'convaiinnovations/laya', + provider: 'vercel-ai-gateway', + name: 'Laya', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'convaiinnovations/laya-free', + provider: 'vercel-ai-gateway', + name: 'Laya (Free)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-r1', + provider: 'vercel-ai-gateway', + name: 'DeepSeek-R1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v3.1', + provider: 'vercel-ai-gateway', + name: 'DeepSeek-V3.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 0.95, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 163840, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v3.1-terminus', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V3.1 Terminus', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.27, output: 1, cacheRead: 0.135, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v3.2', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V3.2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.62, output: 1.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v3.2-thinking', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V3.2 Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.62, output: 1.85, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4-flash', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.13, output: 0.26, cacheRead: 0.028, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4-flash-0731', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4 Flash 0731', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.076, output: 0.153, cacheRead: 0.014, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4-flash-vision-exp', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4 Flash Vision Exp', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2156, output: 0.6468, cacheRead: 0.0068, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4-pro', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.66, output: 1.98, cacheRead: 0.022, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4-pro-0813', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4 Pro 0813', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.66, output: 1.98, cacheRead: 0.066, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 384000, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4.1-flash', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4.1 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.007, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'deepseek/deepseek-v4.1-flash-fast', + provider: 'vercel-ai-gateway', + name: 'DeepSeek V4.1 Flash Fast', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'fireworks/ember-1', + provider: 'vercel-ai-gateway', + name: 'Ember-1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-2.5-flash', + provider: 'vercel-ai-gateway', + name: 'Gemini 2.5 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-2.5-flash-image', + provider: 'vercel-ai-gateway', + name: 'Nano Banana (Gemini 2.5 Flash Image)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 32768, + maxTokens: 65535, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-2.5-flash-lite', + provider: 'vercel-ai-gateway', + name: 'Gemini 2.5 Flash Lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: true, + }, + cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 65535, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-2.5-pro', + provider: 'vercel-ai-gateway', + name: 'Gemini 2.5 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { + input: 1.25, + output: 10, + cacheRead: 0.125, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1048576, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3-flash', + provider: 'vercel-ai-gateway', + name: 'Gemini 3 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65000, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3-pro-image', + provider: 'vercel-ai-gateway', + name: 'Nano Banana Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.1-flash-image', + provider: 'vercel-ai-gateway', + name: 'Nano Banana 2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.1-flash-image-preview', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.1 Flash Image Preview (Nano Banana 2)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.1-flash-lite', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.1 Flash Lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65000, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.1-flash-lite-image', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.1 Flash Lite Image (Nano Banana 2 Lite)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.25, output: 1.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 65536, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.1-pro-preview', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.1 Pro Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.5-flash', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.5 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.5-flash-lite', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.5 Flash Lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65000, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.6-flash', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.6 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.7-flash', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.7 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65535, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.8-flash', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.8 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { low: 'low', high: 'high' }, budget: false }, + cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65535, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.8-live', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.8 Live', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.75, output: 4.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-3.8-live-extended-thinking', + provider: 'vercel-ai-gateway', + name: 'Gemini 3.8 Live Extended Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.75, output: 4.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-nano-banana-2.1', + provider: 'vercel-ai-gateway', + name: 'Gemini Nano Banana 2.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemini-omni-flash-preview', + provider: 'vercel-ai-gateway', + name: 'Gemini Omni Flash Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 57920, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemma-4-26b-a4b-it', + provider: 'vercel-ai-gateway', + name: 'Gemma 4 26B A4B IT', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'google/gemma-4-31b-it', + provider: 'vercel-ai-gateway', + name: 'Gemma 4 31B IT', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.14, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'inception/mercury-2', + provider: 'vercel-ai-gateway', + name: 'Mercury 2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 0.25, + output: 0.75, + cacheRead: 0.024999999999999998, + cacheWrite: 0, + }, + contextWindow: 128000, + maxTokens: 50000, + compat: { allowEmptySignature: true }, + }, + { + id: 'inception/mercury-2.5', + provider: 'vercel-ai-gateway', + name: 'Mercury 2.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.04, output: 0.15, cacheRead: 0.004, cacheWrite: 0 }, + contextWindow: 260000, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'inception/mercury-coder-small', + provider: 'vercel-ai-gateway', + name: 'Mercury Coder Small Beta', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.25, output: 1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.0-flash', + provider: 'vercel-ai-gateway', + name: 'Ling 3.0 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.021, output: 0.063, cacheRead: 0.0042, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.0-flash-fin', + provider: 'vercel-ai-gateway', + name: 'Ling 3.0 Flash Fin', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.075, output: 0.22, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.0-flash-fin-free', + provider: 'vercel-ai-gateway', + name: 'inclusionAI: Ling 3.0 Flash Fin', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.075, output: 0.22, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 235929, + compat: { allowEmptySignature: true }, + borrowedFrom: 'kilo/inclusionai/ling-3.0-flash-fin', + }, + { + id: 'inclusionai/ling-3.0-flash-sante', + provider: 'vercel-ai-gateway', + name: 'Ling 3.0 Flash Sante', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.0-flash-sante-free', + provider: 'vercel-ai-gateway', + name: 'Ling 3.0 Flash Sante (Free)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.0-flash-vl', + provider: 'vercel-ai-gateway', + name: 'Ling 3.0 Flash VL', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.075, output: 0.22, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.0-flash-vl-free', + provider: 'vercel-ai-gateway', + name: 'Ling 3.0 Flash VL', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'video'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.06, output: 0.18, cacheRead: 0.012, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + borrowedFrom: 'nano-gpt/inclusionai/ling-3.0-flash-vl', + }, + { + id: 'inclusionai/ling-3.1-flash', + provider: 'vercel-ai-gateway', + name: 'Ling 3.1 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'inclusionai/ling-3.1-flash-free', + provider: 'vercel-ai-gateway', + name: 'Ling 3.1 Flash (Free)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'inference-net/schematron-v2-small', + provider: 'vercel-ai-gateway', + name: 'Schematron V2 Small', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.05, output: 0.23, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'inference-net/schematron-v2-turbo', + provider: 'vercel-ai-gateway', + name: 'Schematron V2 Turbo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.03, output: 0.15, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { allowEmptySignature: true }, + }, + { + id: 'interfaze/interfaze-beta', + provider: 'vercel-ai-gateway', + name: 'Interfaze Beta', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.5, output: 3.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'liquid/d1', + provider: 'vercel-ai-gateway', + name: 'Liquid d1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'meituan/longcat-2.5-preview', + provider: 'vercel-ai-gateway', + name: 'LongCat 2.5 Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.006, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/llama-3.1-70b', + provider: 'vercel-ai-gateway', + name: 'Llama 3.1 70B Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/llama-3.1-8b', + provider: 'vercel-ai-gateway', + name: 'Llama 3.1 8B Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.22, output: 0.22, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/llama-3.3-70b', + provider: 'vercel-ai-gateway', + name: 'Llama-3.3-70B-Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/llama-4-maverick', + provider: 'vercel-ai-gateway', + name: 'Llama-4-Maverick-17B-128E-Instruct-FP8', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/llama-4-scout', + provider: 'vercel-ai-gateway', + name: 'Llama-4-Scout-17B-16E-Instruct-FP8', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/muse-glimmer-30b', + provider: 'vercel-ai-gateway', + name: 'Muse Glimmer 30B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.35, output: 1.5, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/muse-spark-1.1', + provider: 'vercel-ai-gateway', + name: 'Muse Spark 1.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/muse-spark-1.2', + provider: 'vercel-ai-gateway', + name: 'Muse Spark 1.2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/muse-spark-1.2-contributor', + provider: 'vercel-ai-gateway', + name: 'Muse Spark 1.2 Contributor', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/muse-spark-1.3', + provider: 'vercel-ai-gateway', + name: 'Muse Spark 1.3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'meta/muse-spark-1.3-contributor', + provider: 'vercel-ai-gateway', + name: 'Muse Spark 1.3 Contributor', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 1048576, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2', + provider: 'vercel-ai-gateway', + name: 'MiniMax M2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 205000, + maxTokens: 196608, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2.1', + provider: 'vercel-ai-gateway', + name: 'MiniMax M2.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2.1-lightning', + provider: 'vercel-ai-gateway', + name: 'MiniMax M2.1 Lightning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.3, output: 2.4, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2.5', + provider: 'vercel-ai-gateway', + name: 'MiniMax M2.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131000, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2.5-highspeed', + provider: 'vercel-ai-gateway', + name: 'MiniMax M2.5 High Speed', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.03, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131000, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2.7', + provider: 'vercel-ai-gateway', + name: 'Minimax M2.7', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131000, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m2.7-highspeed', + provider: 'vercel-ai-gateway', + name: 'MiniMax M2.7 High Speed', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, + contextWindow: 204800, + maxTokens: 131100, + compat: { allowEmptySignature: true }, + }, + { + id: 'minimax/minimax-m3', + provider: 'vercel-ai-gateway', + name: 'MiniMax M3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }, + cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 512000, + maxTokens: 512000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/codestral', + provider: 'vercel-ai-gateway', + name: 'Codestral (latest)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 0.9, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/ministral-14b', + provider: 'vercel-ai-gateway', + name: 'Ministral 14B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.2, output: 0.2, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/ministral-3b', + provider: 'vercel-ai-gateway', + name: 'Ministral 3B (latest)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.04, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/ministral-8b', + provider: 'vercel-ai-gateway', + name: 'Ministral 8B (latest)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/mistral-large-3', + provider: 'vercel-ai-gateway', + name: 'Mistral Large 3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/mistral-large-4', + provider: 'vercel-ai-gateway', + name: 'Mistral Large 4', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.68, output: 2.09, cacheRead: 0.07, cacheWrite: 0 }, + contextWindow: 524288, + maxTokens: 262144, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/mistral-medium-3.5', + provider: 'vercel-ai-gateway', + name: 'Mistral Medium Latest', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/mistral-nemo', + provider: 'vercel-ai-gateway', + name: 'Mistral Nemo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.04, output: 0.17, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 60288, + maxTokens: 16000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mistral/mistral-small', + provider: 'vercel-ai-gateway', + name: 'Mistral Small (latest)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 4000, + compat: { allowEmptySignature: true }, + }, + { + id: 'mixedbread/toast-1', + provider: 'vercel-ai-gateway', + name: 'Toast 1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.3, output: 0.72, cacheRead: 0.036, cacheWrite: 0 }, + contextWindow: 131000, + maxTokens: 4000, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k2', + provider: 'vercel-ai-gateway', + name: 'Kimi K2 Instruct', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.57, output: 2.3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k2-thinking', + provider: 'vercel-ai-gateway', + name: 'Kimi K2 Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.47, output: 2, cacheRead: 0.141, cacheWrite: 0 }, + contextWindow: 216144, + maxTokens: 216144, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k2.5', + provider: 'vercel-ai-gateway', + name: 'Kimi K2.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 3, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k2.6', + provider: 'vercel-ai-gateway', + name: 'Kimi K2.6', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 262000, + maxTokens: 262000, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k2.7-code', + provider: 'vercel-ai-gateway', + name: 'Kimi K2.7 Code', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k2.7-code-highspeed', + provider: 'vercel-ai-gateway', + name: 'Kimi K2.7 Code High Speed', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'moonshotai/kimi-k3', + provider: 'vercel-ai-gateway', + name: 'Kimi K3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'moonshotai/kimi-k3-fast', + provider: 'vercel-ai-gateway', + name: 'Kimi K3 Fast', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + max: 'max', + }, + budget: false, + }, + cost: { input: 4.5, output: 22.5, cacheRead: 0.45, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'morph/morph-v3-fast', + provider: 'vercel-ai-gateway', + name: 'Morph v3 Fast', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.8, output: 1.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16000, + maxTokens: 16000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'morph/morph-v3-large', + provider: 'vercel-ai-gateway', + name: 'Morph v3 Large', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.9, output: 1.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 32000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'nvidia/nemotron-3-nano-30b-a3b', + provider: 'vercel-ai-gateway', + name: 'Nemotron 3 Nano 30B A3B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.05, output: 0.2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { allowEmptySignature: true }, + }, + { + id: 'nvidia/nemotron-3-super-120b-a12b', + provider: 'vercel-ai-gateway', + name: 'NVIDIA Nemotron 3 Super 120B A12B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.65, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'nvidia/nemotron-3-ultra-550b-a55b', + provider: 'vercel-ai-gateway', + name: 'Nemotron 3 Ultra', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 65000, + compat: { allowEmptySignature: true }, + }, + { + id: 'nvidia/nemotron-3.5-lightning', + provider: 'vercel-ai-gateway', + name: 'Nemotron 3.5 Lightning 30B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: true }, + cost: { input: 0.05, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'nvidia/nemotron-nano-12b-v2-vl', + provider: 'vercel-ai-gateway', + name: 'Nvidia Nemotron Nano 12B V2 VL', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.2, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'nvidia/nemotron-nano-9b-v2', + provider: 'vercel-ai-gateway', + name: 'Nvidia Nemotron Nano 9B V2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.06, output: 0.23, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-3.5-turbo', + provider: 'vercel-ai-gateway', + name: 'GPT-3.5 Turbo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 16385, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4-turbo', + provider: 'vercel-ai-gateway', + name: 'GPT-4 Turbo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 4096, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4.1', + provider: 'vercel-ai-gateway', + name: 'GPT-4.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4.1-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-4.1 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 3.5, output: 14, cacheRead: 0.875, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4.1-mini', + provider: 'vercel-ai-gateway', + name: 'GPT-4.1 mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4.1-mini-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-4.1 mini (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.7, output: 2.8, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4.1-nano', + provider: 'vercel-ai-gateway', + name: 'GPT-4.1 nano', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4.1-nano-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-4.1 nano (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.2, output: 0.8, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1047576, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4o', + provider: 'vercel-ai-gateway', + name: 'GPT-4o', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4o-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-4o (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 4.25, output: 17, cacheRead: 2.125, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4o-mini', + provider: 'vercel-ai-gateway', + name: 'GPT-4o mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-4o-mini-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-4o mini (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.25, output: 1, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16384, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5', + provider: 'vercel-ai-gateway', + name: 'GPT-5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5-codex', + provider: 'vercel-ai-gateway', + name: 'GPT-5-Codex', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-5 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 2.5, output: 20, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5-mini', + provider: 'vercel-ai-gateway', + name: 'GPT-5 Mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5-mini-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-5 mini (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.45, output: 3.6, cacheRead: 0.045, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5-nano', + provider: 'vercel-ai-gateway', + name: 'GPT-5 Nano', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.05, output: 0.4, cacheRead: 0.005, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5-pro', + provider: 'vercel-ai-gateway', + name: 'GPT-5 pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { high: 'high' }, budget: false }, + cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 272000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.1-codex', + provider: 'vercel-ai-gateway', + name: 'GPT-5.1-Codex', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.1-codex-max', + provider: 'vercel-ai-gateway', + name: 'GPT 5.1 Codex Max', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.1-codex-mini', + provider: 'vercel-ai-gateway', + name: 'GPT-5.1 Codex mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.25, output: 2, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.1-thinking', + provider: 'vercel-ai-gateway', + name: 'GPT 5.1 Thinking', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.1-thinking-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.1 Thinking (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 2.5, output: 20, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.2', + provider: 'vercel-ai-gateway', + name: 'GPT-5.2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.2-codex', + provider: 'vercel-ai-gateway', + name: 'GPT-5.2-Codex', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.2-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.2 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 3.5, output: 28, cacheRead: 0.35, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.2-pro', + provider: 'vercel-ai-gateway', + name: 'GPT 5.2 ', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.3-codex', + provider: 'vercel-ai-gateway', + name: 'GPT 5.3 Codex', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.3-codex-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.3 Codex (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 3.5, output: 28, cacheRead: 0.35, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.4', + provider: 'vercel-ai-gateway', + name: 'GPT 5.4', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 2.5, + output: 15, + cacheRead: 0.25, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 5, + output: 22.5, + cacheRead: 0.5, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.4-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.4 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.4-mini', + provider: 'vercel-ai-gateway', + name: 'GPT 5.4 Mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.4-mini-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.4 Mini (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.4-nano', + provider: 'vercel-ai-gateway', + name: 'GPT 5.4 Nano', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 400000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.4-pro', + provider: 'vercel-ai-gateway', + name: 'GPT 5.4 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.5', + provider: 'vercel-ai-gateway', + name: 'GPT 5.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.5-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.5 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 12.5, output: 75, cacheRead: 1.25, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5.5-pro', + provider: 'vercel-ai-gateway', + name: 'GPT 5.5 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272000, + input: 60, + output: 270, + cacheRead: 0, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.6-luna', + provider: 'vercel-ai-gateway', + name: 'GPT 5.6 Luna', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1.2, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.4, + output: 1.8, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.6-luna-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.6 Luna (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.4, + output: 2.4, + cacheRead: 0.04, + cacheWrite: 0.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 0.8, + output: 3.6, + cacheRead: 0.08, + cacheWrite: 1, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5.6-sol', + provider: 'vercel-ai-gateway', + name: 'GPT 5.6 Sol', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.6-sol-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.6 Sol (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 8, + output: 40, + cacheRead: 0.8, + cacheWrite: 10, + tiers: [ + { + inputTokensAbove: 272000, + input: 16, + output: 60, + cacheRead: 1.6, + cacheWrite: 20, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-5.6-terra', + provider: 'vercel-ai-gateway', + name: 'GPT 5.6 Terra', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 12, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272000, + input: 4, + output: 18, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-5.6-terra-fast', + provider: 'vercel-ai-gateway', + name: 'GPT 5.6 Terra (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 24, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272000, + input: 8, + output: 36, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6-astra', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Astra', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 10, + output: 50, + cacheRead: 1, + cacheWrite: 12.5, + tiers: [ + { + inputTokensAbove: 272001, + input: 20, + output: 75, + cacheRead: 2, + cacheWrite: 25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6-astra-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Astra (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 20, + output: 100, + cacheRead: 2, + cacheWrite: 25, + tiers: [ + { + inputTokensAbove: 272001, + input: 40, + output: 150, + cacheRead: 4, + cacheWrite: 50, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6-luna', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Luna', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.1, + output: 0.5, + cacheRead: 0.01, + cacheWrite: 0.125, + tiers: [ + { + inputTokensAbove: 272001, + input: 0.2, + output: 0.75, + cacheRead: 0.02, + cacheWrite: 0.25, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6-luna-decisions', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Luna Decisions', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.1, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-6-luna-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Luna (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 0.2, + output: 1, + cacheRead: 0.02, + cacheWrite: 0.25, + tiers: [ + { + inputTokensAbove: 272001, + input: 0.4, + output: 1.5, + cacheRead: 0.04, + cacheWrite: 0.5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6-sol', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Sol', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272001, + input: 4, + output: 15, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6-sol-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-6 Sol (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272001, + input: 8, + output: 30, + cacheRead: 0.8, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6.1-sol', + provider: 'vercel-ai-gateway', + name: 'GPT-6.1 Sol', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 2, + output: 10, + cacheRead: 0.1, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 272001, + input: 4, + output: 15, + cacheRead: 0.2, + cacheWrite: 5, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-6.1-sol-fast', + provider: 'vercel-ai-gateway', + name: 'GPT-6.1 Sol (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { + input: 4, + output: 20, + cacheRead: 0.2, + cacheWrite: 5, + tiers: [ + { + inputTokensAbove: 272001, + input: 8, + output: 30, + cacheRead: 0.4, + cacheWrite: 10, + }, + ], + }, + contextWindow: 1050000, + maxTokens: 128000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/gpt-live-1', + provider: 'vercel-ai-gateway', + name: 'GPT-Live 1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-oss-120b', + provider: 'vercel-ai-gateway', + name: 'GPT OSS 120B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.1, output: 0.5, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-oss-20b', + provider: 'vercel-ai-gateway', + name: 'GPT OSS 20B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.03, output: 0.14, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 8192, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-oss-safeguard-120b', + provider: 'vercel-ai-gateway', + name: 'GPT OSS Safeguard 120B', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-oss-safeguard-20b', + provider: 'vercel-ai-gateway', + name: 'gpt-oss-safeguard-20b', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.07, output: 0.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 16000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-realtime-1.5', + provider: 'vercel-ai-gateway', + name: 'GPT-Realtime-1.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 4, output: 16, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-realtime-2', + provider: 'vercel-ai-gateway', + name: 'gpt-realtime-2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-realtime-2.1', + provider: 'vercel-ai-gateway', + name: 'gpt-realtime-2.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: { + levels: { + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }, + budget: false, + }, + cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/gpt-realtime-mini', + provider: 'vercel-ai-gateway', + name: 'GPT-Realtime mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/o1', + provider: 'vercel-ai-gateway', + name: 'o1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/o3', + provider: 'vercel-ai-gateway', + name: 'o3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/o3-fast', + provider: 'vercel-ai-gateway', + name: 'o3 (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 3.5, output: 14, cacheRead: 0.875, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/o3-mini', + provider: 'vercel-ai-gateway', + name: 'o3-mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/o3-pro', + provider: 'vercel-ai-gateway', + name: 'o3 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true }, + }, + { + id: 'openai/o4-mini', + provider: 'vercel-ai-gateway', + name: 'o4-mini', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'openai/o4-mini-fast', + provider: 'vercel-ai-gateway', + name: 'o4-mini (Fast)', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 100000, + compat: { allowEmptySignature: true, supportsTemperature: false }, + }, + { + id: 'perplexity/sonar', + provider: 'vercel-ai-gateway', + name: 'Sonar', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 0.25, output: 2.5, cacheRead: 0, cacheWrite: 0.0625 }, + contextWindow: 127000, + maxTokens: 8000, + compat: { allowEmptySignature: true }, + }, + { + id: 'poolside/laguna-s-2.1', + provider: 'vercel-ai-gateway', + name: 'Laguna S 2.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.1, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'poolside/laguna-s-2.1-free', + provider: 'vercel-ai-gateway', + name: 'Laguna S 2.1 Free', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 32768, + compat: { allowEmptySignature: true }, + }, + { + id: 'quiverai/arrow-2', + provider: 'vercel-ai-gateway', + name: 'Arrow 2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 4, output: 20, cacheRead: 0.4, cacheWrite: 5 }, + contextWindow: 131072, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'quiverai/arrow-2-telos', + provider: 'vercel-ai-gateway', + name: 'Arrow 2 Telos', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 6, output: 30, cacheRead: 0.6, cacheWrite: 7.5 }, + contextWindow: 131072, + maxTokens: 65536, + compat: { allowEmptySignature: true }, + }, + { + id: 'sakana/fugu-max', + provider: 'vercel-ai-gateway', + name: 'Fugu Max', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { high: 'high', xhigh: 'xhigh' }, budget: false }, + cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'sakana/fugu-ultra', + provider: 'vercel-ai-gateway', + name: 'Fugu Ultra', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { high: 'high', xhigh: 'xhigh' }, budget: false }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272001, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'sakana/fugu-ultra-v2', + provider: 'vercel-ai-gateway', + name: 'Fugu Ultra v2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { high: 'high', xhigh: 'xhigh' }, budget: false }, + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 272001, + input: 10, + output: 45, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'sakana/namazu', + provider: 'vercel-ai-gateway', + name: 'Sakana Namazu', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.95, output: 4, cacheRead: 0.15, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.1-fast-non-reasoning', + provider: 'vercel-ai-gateway', + name: 'Grok 4.1 Fast Non-Reasoning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.1-fast-reasoning', + provider: 'vercel-ai-gateway', + name: 'Grok 4.1 Fast Reasoning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.20-multi-agent', + provider: 'vercel-ai-gateway', + name: 'Grok 4.20 Multi-Agent', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.20-multi-agent-beta', + provider: 'vercel-ai-gateway', + name: 'Grok 4.20 Multi Agent Beta', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.20-non-reasoning', + provider: 'vercel-ai-gateway', + name: 'Grok 4.20 Non-Reasoning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.20-non-reasoning-beta', + provider: 'vercel-ai-gateway', + name: 'Grok 4.20 Beta Non-Reasoning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.4, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.20-reasoning', + provider: 'vercel-ai-gateway', + name: 'Grok 4.20 Reasoning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.20-reasoning-beta', + provider: 'vercel-ai-gateway', + name: 'Grok 4.20 Beta Reasoning', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 2000000, + maxTokens: 2000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.3', + provider: 'vercel-ai-gateway', + name: 'Grok 4.3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.5', + provider: 'vercel-ai-gateway', + name: 'Grok 4.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 4, + output: 12, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.6', + provider: 'vercel-ai-gateway', + name: 'Grok 4.6', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-4.7', + provider: 'vercel-ai-gateway', + name: 'Grok 4.7', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-build-0.1', + provider: 'vercel-ai-gateway', + name: 'Grok Build 0.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1, + output: 2, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200001, + input: 2, + output: 4, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 256000, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-stt', + provider: 'vercel-ai-gateway', + name: 'Grok STT', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['audio'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-voice-think-fast-1.0', + provider: 'vercel-ai-gateway', + name: 'Grok Voice Think Fast 1.0', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'spacexai/grok-voice-think-fast-2.0', + provider: 'vercel-ai-gateway', + name: 'Grok Voice Think Fast 2.0', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'audio'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 0, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'stealth/pixel-canary', + provider: 'vercel-ai-gateway', + name: 'Pixel Canary', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', xhigh: 'xhigh' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'stepfun/step-3.5-flash', + provider: 'vercel-ai-gateway', + name: 'StepFun 3.5 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.09, output: 0.3, cacheRead: 0.02, cacheWrite: 0 }, + contextWindow: 262114, + maxTokens: 262114, + compat: { allowEmptySignature: true }, + }, + { + id: 'stepfun/step-3.7-flash', + provider: 'vercel-ai-gateway', + name: 'Step 3.7 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 0.2, output: 1.15, cacheRead: 0.04, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'stepfun/step-5-preview', + provider: 'vercel-ai-gateway', + name: 'Step 5 Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: false, + cost: { input: 1, output: 2.7, cacheRead: 0.05, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'tencent/hy-mt2-lite', + provider: 'vercel-ai-gateway', + name: 'Tencent Hy-MT2-Lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.044, output: 0.177, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8000, + maxTokens: 4000, + compat: { allowEmptySignature: true }, + }, + { + id: 'tencent/hy-mt2-plus', + provider: 'vercel-ai-gateway', + name: 'Tencent Hy-MT2-Plus', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.074, output: 0.295, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8000, + maxTokens: 4000, + compat: { allowEmptySignature: true }, + }, + { + id: 'tencent/hy-mt2-pro', + provider: 'vercel-ai-gateway', + name: 'Tencent Hy-MT2-Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.074, output: 0.295, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8000, + maxTokens: 4000, + compat: { allowEmptySignature: true }, + }, + { + id: 'tencent/hy3', + provider: 'vercel-ai-gateway', + name: 'Hy3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', high: 'high' }, + budget: false, + }, + cost: { input: 0.14, output: 0.58, cacheRead: 0.035, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 262144, + compat: { allowEmptySignature: true }, + }, + { + id: 'tencent/hy4-preview', + provider: 'vercel-ai-gateway', + name: 'Tencent Hy4 Preview', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'none', high: 'high' }, budget: false }, + cost: { input: 0.834, output: 2.501, cacheRead: 0.042, cacheWrite: 0 }, + contextWindow: 1024000, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'thinkingmachines/inkling', + provider: 'vercel-ai-gateway', + name: 'Inkling', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, + contextWindow: 256000, + maxTokens: 256000, + compat: { allowEmptySignature: true }, + }, + { + id: 'thinkingmachines/inkling-small', + provider: 'vercel-ai-gateway', + name: 'Inkling Small', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + max: 'max', + }, + budget: false, + }, + cost: { input: 0.45, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'typesafe-ai/jev', + provider: 'vercel-ai-gateway', + name: 'Jev', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0.042, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-3-large', + provider: 'vercel-ai-gateway', + name: 'voyage-3-large', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-3.5', + provider: 'vercel-ai-gateway', + name: 'voyage-3.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-3.5-lite', + provider: 'vercel-ai-gateway', + name: 'voyage-3.5-lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-4', + provider: 'vercel-ai-gateway', + name: 'voyage-4', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-4-large', + provider: 'vercel-ai-gateway', + name: 'voyage-4-large', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-4-lite', + provider: 'vercel-ai-gateway', + name: 'voyage-4-lite', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 32000, + maxTokens: 0, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-code-2', + provider: 'vercel-ai-gateway', + name: 'voyage-code-2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-code-3', + provider: 'vercel-ai-gateway', + name: 'voyage-code-3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-finance-2', + provider: 'vercel-ai-gateway', + name: 'voyage-finance-2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'voyage/voyage-law-2', + provider: 'vercel-ai-gateway', + name: 'voyage-law-2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: false, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 8192, + maxTokens: 1536, + compat: { allowEmptySignature: true }, + }, + { + id: 'xiaomi/mimo-v2.5', + provider: 'vercel-ai-gateway', + name: 'MiMo M2.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 131100, + compat: { allowEmptySignature: true }, + }, + { + id: 'xiaomi/mimo-v2.5-pro', + provider: 'vercel-ai-gateway', + name: 'MiMo V2.5 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1050000, + maxTokens: 131000, + compat: { allowEmptySignature: true }, + }, + { + id: 'xiaomi/mimo-v2.6-flash', + provider: 'vercel-ai-gateway', + name: 'MiMo V2.6 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'xiaomi/mimo-v2.6-pro', + provider: 'vercel-ai-gateway', + name: 'MiMo V2.6 Pro', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'xiaomi/mimo-v2.6-pro-ultraspeed', + provider: 'vercel-ai-gateway', + name: 'MiMo V2.6 Pro UltraSpeed', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { + off: 'none', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { input: 4.35, output: 8.7, cacheRead: 0.036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.5', + provider: 'vercel-ai-gateway', + name: 'GLM 4.5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 96000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.5-air', + provider: 'vercel-ai-gateway', + name: 'GLM 4.5 Air', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.2, output: 1.1, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 96000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.5v', + provider: 'vercel-ai-gateway', + name: 'GLM 4.5V', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 1.8, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 66000, + maxTokens: 16000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.6', + provider: 'vercel-ai-gateway', + name: 'GLM 4.6', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 96000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.7', + provider: 'vercel-ai-gateway', + name: 'GLM 4.7', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 120000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.7-flash', + provider: 'vercel-ai-gateway', + name: 'GLM 4.7 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.07, output: 0.4, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-4.7-flashx', + provider: 'vercel-ai-gateway', + name: 'GLM 4.7 FlashX', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.06, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5', + provider: 'vercel-ai-gateway', + name: 'GLM-5', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 131100, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5-turbo', + provider: 'vercel-ai-gateway', + name: 'GLM 5 Turbo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.1', + provider: 'vercel-ai-gateway', + name: 'GLM 5.1', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 202800, + maxTokens: 64000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.2', + provider: 'vercel-ai-gateway', + name: 'GLM 5.2', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.8, output: 2.55, cacheRead: 0.16, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.2-fast', + provider: 'vercel-ai-gateway', + name: 'GLM 5.2 Fast', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2.8, output: 8.8, cacheRead: 0.56, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.3', + provider: 'vercel-ai-gateway', + name: 'GLM 5.3', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.14, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 1000000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.3-fast', + provider: 'vercel-ai-gateway', + name: 'GLM 5.3 Fast', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 262144, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.3-flash', + provider: 'vercel-ai-gateway', + name: 'GLM 5.3 Flash', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131000, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5.3-flashx', + provider: 'vercel-ai-gateway', + name: 'GLM 5.3 FlashX', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.37, output: 1.25, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { allowEmptySignature: true }, + }, + { + id: 'zai/glm-5v-turbo', + provider: 'vercel-ai-gateway', + name: 'GLM 5V Turbo', + api: 'anthropic-messages', + baseUrl: 'https://ai-gateway.vercel.sh', + input: ['text', 'image', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 128000, + compat: { allowEmptySignature: true }, + }, +] diff --git a/packages/ai-models/src/providers/xai.ts b/packages/ai-models/src/providers/xai.ts new file mode 100644 index 0000000000..6c829c1023 --- /dev/null +++ b/packages/ai-models/src/providers/xai.ts @@ -0,0 +1,264 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** xAI. */ +export const provider: ProviderRecord = { + id: 'xai', + name: 'xAI', + baseUrl: 'https://api.x.ai/v1', + apis: ['openai-responses'], + env: [['XAI_API_KEY']], +} + +/** Every xAI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'grok-4.20-0309-non-reasoning', + provider: 'xai', + name: 'Grok 4.20 (Non-Reasoning)', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: false, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 30000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-4.20-0309-reasoning', + provider: 'xai', + name: 'Grok 4.20 (Reasoning)', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 30000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-4.20-multi-agent-0309', + provider: 'xai', + name: 'Grok 4.20 Multi-Agent', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 30000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-4.3', + provider: 'xai', + name: 'Grok 4.3', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { off: 'none', low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 1.25, + output: 2.5, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2.5, + output: 5, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 1000000, + maxTokens: 30000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-4.5', + provider: 'xai', + name: 'Grok 4.5', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.3, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 0.6, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-4.6', + provider: 'xai', + name: 'Grok 4.6', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-4.7', + provider: 'xai', + name: 'Grok 4.7', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { low: 'low', medium: 'medium', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + cost: { + input: 2, + output: 6, + cacheRead: 0.5, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 4, + output: 12, + cacheRead: 1, + cacheWrite: 0, + }, + ], + }, + contextWindow: 500000, + maxTokens: 500000, + compat: { supportsLongCacheRetention: false }, + }, + { + id: 'grok-build-0.1', + provider: 'xai', + name: 'Grok Build 0.1', + api: 'openai-responses', + baseUrl: 'https://api.x.ai/v1', + input: ['text', 'image', 'document'], + reasoning: { + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: false, + }, + cost: { + input: 1, + output: 2, + cacheRead: 0.2, + cacheWrite: 0, + tiers: [ + { + inputTokensAbove: 200000, + input: 2, + output: 4, + cacheRead: 0.4, + cacheWrite: 0, + }, + ], + }, + contextWindow: 256000, + maxTokens: 256000, + compat: { supportsLongCacheRetention: false }, + }, +] diff --git a/packages/ai-models/src/providers/xiaomi-token-plan-ams.ts b/packages/ai-models/src/providers/xiaomi-token-plan-ams.ts new file mode 100644 index 0000000000..a52ef9e139 --- /dev/null +++ b/packages/ai-models/src/providers/xiaomi-token-plan-ams.ts @@ -0,0 +1,83 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Xiaomi MiMo Token Plan (Amsterdam). */ +export const provider: ProviderRecord = { + id: 'xiaomi-token-plan-ams', + name: 'Xiaomi MiMo Token Plan (Amsterdam)', + baseUrl: 'https://token-plan-ams.xiaomimimo.com/v1', + apis: ['openai-completions'], + env: [['XIAOMI_TOKEN_PLAN_AMS_API_KEY']], +} + +/** Every Xiaomi MiMo Token Plan (Amsterdam) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'mimo-v2.5', + provider: 'xiaomi-token-plan-ams', + name: 'MiMo-V2.5', + api: 'openai-completions', + baseUrl: 'https://token-plan-ams.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.5-pro', + provider: 'xiaomi-token-plan-ams', + name: 'MiMo-V2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://token-plan-ams.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-flash', + provider: 'xiaomi-token-plan-ams', + name: 'MiMo-V2.6-Flash', + api: 'openai-completions', + baseUrl: 'https://token-plan-ams.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-pro', + provider: 'xiaomi-token-plan-ams', + name: 'MiMo-V2.6-Pro', + api: 'openai-completions', + baseUrl: 'https://token-plan-ams.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, +] diff --git a/packages/ai-models/src/providers/xiaomi-token-plan-cn.ts b/packages/ai-models/src/providers/xiaomi-token-plan-cn.ts new file mode 100644 index 0000000000..6c649c1d4b --- /dev/null +++ b/packages/ai-models/src/providers/xiaomi-token-plan-cn.ts @@ -0,0 +1,83 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Xiaomi MiMo Token Plan (China). */ +export const provider: ProviderRecord = { + id: 'xiaomi-token-plan-cn', + name: 'Xiaomi MiMo Token Plan (China)', + baseUrl: 'https://token-plan-cn.xiaomimimo.com/v1', + apis: ['openai-completions'], + env: [['XIAOMI_TOKEN_PLAN_CN_API_KEY']], +} + +/** Every Xiaomi MiMo Token Plan (China) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'mimo-v2.5', + provider: 'xiaomi-token-plan-cn', + name: 'MiMo-V2.5', + api: 'openai-completions', + baseUrl: 'https://token-plan-cn.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.5-pro', + provider: 'xiaomi-token-plan-cn', + name: 'MiMo-V2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://token-plan-cn.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-flash', + provider: 'xiaomi-token-plan-cn', + name: 'MiMo-V2.6-Flash', + api: 'openai-completions', + baseUrl: 'https://token-plan-cn.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-pro', + provider: 'xiaomi-token-plan-cn', + name: 'MiMo-V2.6-Pro', + api: 'openai-completions', + baseUrl: 'https://token-plan-cn.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, +] diff --git a/packages/ai-models/src/providers/xiaomi-token-plan-sgp.ts b/packages/ai-models/src/providers/xiaomi-token-plan-sgp.ts new file mode 100644 index 0000000000..629b63e9d6 --- /dev/null +++ b/packages/ai-models/src/providers/xiaomi-token-plan-sgp.ts @@ -0,0 +1,83 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Xiaomi MiMo Token Plan (Singapore). */ +export const provider: ProviderRecord = { + id: 'xiaomi-token-plan-sgp', + name: 'Xiaomi MiMo Token Plan (Singapore)', + baseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1', + apis: ['openai-completions'], + env: [['XIAOMI_TOKEN_PLAN_SGP_API_KEY']], +} + +/** Every Xiaomi MiMo Token Plan (Singapore) model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'mimo-v2.5', + provider: 'xiaomi-token-plan-sgp', + name: 'MiMo-V2.5', + api: 'openai-completions', + baseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.5-pro', + provider: 'xiaomi-token-plan-sgp', + name: 'MiMo-V2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-flash', + provider: 'xiaomi-token-plan-sgp', + name: 'MiMo-V2.6-Flash', + api: 'openai-completions', + baseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-pro', + provider: 'xiaomi-token-plan-sgp', + name: 'MiMo-V2.6-Pro', + api: 'openai-completions', + baseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, +] diff --git a/packages/ai-models/src/providers/xiaomi.ts b/packages/ai-models/src/providers/xiaomi.ts new file mode 100644 index 0000000000..257f52a457 --- /dev/null +++ b/packages/ai-models/src/providers/xiaomi.ts @@ -0,0 +1,168 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Xiaomi MiMo. */ +export const provider: ProviderRecord = { + id: 'xiaomi', + name: 'Xiaomi MiMo', + baseUrl: 'https://api.xiaomimimo.com/v1', + apis: ['openai-completions'], + env: [['XIAOMI_API_KEY']], +} + +/** Every Xiaomi MiMo model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'mimo-v2-flash', + provider: 'xiaomi', + name: 'MiMo-V2-Flash', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 65536, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2-omni', + provider: 'xiaomi', + name: 'MiMo-V2-Omni', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 262144, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2-pro', + provider: 'xiaomi', + name: 'MiMo-V2-Pro', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.5', + provider: 'xiaomi', + name: 'MiMo-V2.5', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.5-pro', + provider: 'xiaomi', + name: 'MiMo-V2.5-Pro', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.5-pro-ultraspeed', + provider: 'xiaomi', + name: 'MiMo-V2.5-Pro-UltraSpeed', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.305, output: 2.61, cacheRead: 0.0108, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-flash', + provider: 'xiaomi', + name: 'MiMo-V2.6-Flash', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-pro', + provider: 'xiaomi', + name: 'MiMo-V2.6-Pro', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, + { + id: 'mimo-v2.6-pro-ultraspeed', + provider: 'xiaomi', + name: 'MiMo-V2.6-Pro-UltraSpeed', + api: 'openai-completions', + baseUrl: 'https://api.xiaomimimo.com/v1', + input: ['text', 'image', 'audio', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 4.35, output: 8.7, cacheRead: 0.036, cacheWrite: 0 }, + contextWindow: 1048576, + maxTokens: 131072, + compat: { + supportsStrictMode: true, + requiresReasoningContentOnAssistantMessages: true, + thinkingFormat: 'deepseek', + }, + }, +] diff --git a/packages/ai-models/src/providers/zai-coding-cn.ts b/packages/ai-models/src/providers/zai-coding-cn.ts new file mode 100644 index 0000000000..474efe1c7f --- /dev/null +++ b/packages/ai-models/src/providers/zai-coding-cn.ts @@ -0,0 +1,199 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Zhipu AI Coding Plan. */ +export const provider: ProviderRecord = { + id: 'zai-coding-cn', + name: 'Zhipu AI Coding Plan', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + apis: ['openai-completions'], + env: [['ZAI_CODING_CN_API_KEY']], +} + +/** Every Zhipu AI Coding Plan model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'glm-4.6v', + provider: 'zai-coding-cn', + name: 'GLM-4.6V', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.7', + provider: 'zai-coding-cn', + name: 'GLM-4.7', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5-turbo', + provider: 'zai-coding-cn', + name: 'GLM-5-Turbo', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5.2', + provider: 'zai-coding-cn', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.2-highspeed', + provider: 'zai-coding-cn', + name: 'GLM-5.2 Highspeed', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3', + provider: 'zai-coding-cn', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3-flash', + provider: 'zai-coding-cn', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3-highspeed', + provider: 'zai-coding-cn', + name: 'GLM-5.3 Highspeed', + api: 'openai-completions', + baseUrl: 'https://open.bigmodel.cn/api/coding/paas/v4', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, +] diff --git a/packages/ai-models/src/providers/zai.ts b/packages/ai-models/src/providers/zai.ts new file mode 100644 index 0000000000..879ba1b8c6 --- /dev/null +++ b/packages/ai-models/src/providers/zai.ts @@ -0,0 +1,460 @@ +// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit. +import type { ModelRecord, ProviderRecord } from '../types' + +/** Z.AI. */ +export const provider: ProviderRecord = { + id: 'zai', + name: 'Z.AI', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + apis: ['openai-completions'], + env: [['ZAI_API_KEY']], +} + +/** Every Z.AI model, sorted by id. */ +export const models: ReadonlyArray = [ + { + id: 'glm-4.5', + provider: 'zai', + name: 'GLM-4.5', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.5-air', + provider: 'zai', + name: 'GLM-4.5-Air', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.2, output: 1.1, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.5-flash', + provider: 'zai', + name: 'GLM-4.5-Flash', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 131072, + maxTokens: 98304, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.5v', + provider: 'zai', + name: 'GLM-4.5V', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 1.8, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 64000, + maxTokens: 16384, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.6', + provider: 'zai', + name: 'GLM-4.6', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.6v', + provider: 'zai', + name: 'GLM-4.6V', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.6v-flash', + provider: 'zai', + name: 'GLM-4.6V-Flash', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text', 'image', 'video'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 32768, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.7', + provider: 'zai', + name: 'GLM-4.7', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.7-flash', + provider: 'zai', + name: 'GLM-4.7-Flash', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-4.7-flashx', + provider: 'zai', + name: 'GLM-4.7-FlashX', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 0.07, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5', + provider: 'zai', + name: 'GLM-5', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, + contextWindow: 204800, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5-turbo', + provider: 'zai', + name: 'GLM-5-Turbo', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5.1', + provider: 'zai', + name: 'GLM-5.1', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, + { + id: 'glm-5.2', + provider: 'zai', + name: 'GLM-5.2', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.2-highspeed', + provider: 'zai', + name: 'GLM-5.2 Highspeed', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { levels: { high: 'high', max: 'max' }, budget: false }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + borrowedFrom: 'zai-coding-plan/glm-5.2-highspeed', + }, + { + id: 'glm-5.3', + provider: 'zai', + name: 'GLM-5.3', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3-flash', + provider: 'zai', + name: 'GLM-5.3-Flash', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.15, output: 0.5, cacheRead: 0.03, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3-flashx', + provider: 'zai', + name: 'GLM-5.3-FlashX', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text', 'image', 'video', 'document'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0.37, output: 1.25, cacheRead: 0.075, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + }, + { + id: 'glm-5.3-highspeed', + provider: 'zai', + name: 'GLM-5.3 Highspeed', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text'], + reasoning: { + levels: { low: 'low', high: 'high', max: 'max' }, + budget: false, + }, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 1000000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: true, + }, + borrowedFrom: 'zhipuai-coding-plan/glm-5.3-highspeed', + }, + { + id: 'glm-5v-turbo', + provider: 'zai', + name: 'GLM-5V-Turbo', + api: 'openai-completions', + baseUrl: 'https://api.z.ai/api/coding/paas/v4', + input: ['text', 'image', 'video', 'document'], + reasoning: { levels: { off: 'off', high: 'high' }, budget: false }, + cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, + contextWindow: 200000, + maxTokens: 131072, + compat: { + supportsStore: false, + supportsDeveloperRole: false, + maxTokensField: 'max_tokens', + thinkingFormat: 'zai', + supportsStrictMode: true, + zaiToolStream: true, + requiresReasoningContentOnAssistantMessages: true, + supportsReasoningEffort: false, + }, + }, +] diff --git a/packages/ai-models/src/reasoning.ts b/packages/ai-models/src/reasoning.ts new file mode 100644 index 0000000000..b96b4389df --- /dev/null +++ b/packages/ai-models/src/reasoning.ts @@ -0,0 +1,47 @@ +import type { ModelRecord, ReasoningLevel } from './types' + +// ponytail: the same rules as `supportedReasoningLevels` and +// `clampReasoningLevel` in `@tanstack/ai` (pi's rules). They are copied so +// this package has no dependencies. A test runs both on the same data. +const LEVELS: ReadonlyArray = [ + 'off', + 'minimal', + 'low', + 'medium', + 'high', + 'xhigh', + 'max', +] + +/** + * The levels a model supports, from least to most thinking: the levels in + * its `reasoning` data. A model that does not reason supports only `off`. + */ +export function supportedReasoningLevels( + model: Pick, +): ReadonlyArray { + const reasoning = model.reasoning + if (!reasoning) return ['off'] + return LEVELS.filter((level) => level in reasoning.levels) +} + +/** + * The level to use: `level` when the model supports it, else the nearest + * supported level above it, else the nearest below it, else `off`. + */ +export function clampReasoningLevel( + model: Pick, + level: ReasoningLevel, +): ReasoningLevel { + const supported = supportedReasoningLevels(model) + if (supported.includes(level)) return level + const index = LEVELS.indexOf(level) + const above = LEVELS.slice(index + 1).find((candidate) => + supported.includes(candidate), + ) + if (above) return above + const below = LEVELS.slice(0, index) + .reverse() + .find((candidate) => supported.includes(candidate)) + return below ?? supported[0] ?? 'off' +} diff --git a/packages/ai-models/src/types.ts b/packages/ai-models/src/types.ts new file mode 100644 index 0000000000..300b0c8840 --- /dev/null +++ b/packages/ai-models/src/types.ts @@ -0,0 +1,180 @@ +/** + * How hard a model thinks. The same levels as `chat({ reasoning })` in + * `@tanstack/ai`, declared here too so this package has no dependencies. + */ +export type ReasoningLevel = + | 'off' + | 'minimal' + | 'low' + | 'medium' + | 'high' + | 'xhigh' + | 'max' + +/** + * A model's levels: the provider value to send for each level the model has. + * A level with no entry is not supported. The same as `ReasoningLevels` in + * `@tanstack/ai`. + */ +export type ReasoningLevels = Partial> + +/** + * A model's reasoning data. `false`: the model does not reason. Otherwise + * the levels it has, and whether it takes a thinking token budget. The same + * shape as `ModelReasoning` in `@tanstack/ai`, so an adapter can read it. + */ +export type ModelReasoning = + | false + | { levels: ReasoningLevels; budget: boolean } + +/** The wire protocol of a model. It picks the adapter. */ +export type WireApi = + | 'anthropic-messages' + | 'openai-completions' + | 'openai-responses' + | 'azure-openai-responses' + | 'google-generative-ai' + | 'google-vertex' + | 'bedrock-converse-stream' + | 'mistral-conversations' + +/** The input kinds a model reads. */ +export type InputModality = 'text' | 'image' | 'audio' | 'video' | 'document' + +/** How a Chat Completions request asks for thinking. */ +export type ThinkingFormat = + | 'openai' + | 'deepseek' + | 'zai' + | 'qwen' + | 'qwen-chat-template' + | 'chat-template' + | 'baseten' + | 'openrouter' + | 'together' + | 'string-thinking' + | 'ant-ling' + +/** + * Wire quirks of a model: the provider rule merged with the model's own + * hints (the model wins). An absent field means "the adapter default". + * The Chat Completions fields follow pi's `OpenAICompletionsCompat`. + */ +export interface ModelCompat { + // Chat Completions request shape. + thinkingFormat?: ThinkingFormat + supportsReasoningEffort?: boolean + supportsDeveloperRole?: boolean + maxTokensField?: 'max_completion_tokens' | 'max_tokens' + requiresReasoningContentOnAssistantMessages?: boolean + supportsStore?: boolean + supportsStrictMode?: boolean + supportsUsageInStreaming?: boolean + zaiToolStream?: boolean + sendSessionAffinityHeaders?: boolean + sessionAffinityFormat?: 'openai' | 'openrouter' | 'openai-nosession' + cacheControlFormat?: 'anthropic' + supportsLongCacheRetention?: boolean + thinkingTokenBudgetField?: string + chatTemplateKwargs?: Record + chatTemplateArgs?: Record + supportsTemperature?: boolean + // Anthropic Messages. + forceAdaptiveThinking?: boolean + /** The level goes into the messages, not into `output_config` (pi's flag). */ + supportsMidConvoEffort?: boolean + supportsMidConvoSystemMessages?: boolean + supportsStrictTools?: boolean + allowEmptySignature?: boolean + supportsEagerToolInputStreaming?: boolean + supportsCacheControlOnTools?: boolean + // OpenAI Responses. + supportsAdditionalTools?: boolean + supportsToolSearch?: boolean + supportsOpenAIGrammarTools?: boolean + /** `true`: the model takes `prompt_cache_options` (OpenAI gpt-5.6 and later); older models reject it. */ + supportsExplicitPromptCacheMode?: boolean +} + +/** Prices in USD per 1M tokens. */ +export interface ModelCostRates { + input: number + output: number + cacheRead: number + cacheWrite: number + /** + * Higher prices for a call with more input, for example long context. A + * call uses the tier with the highest `inputTokensAbove` below its input + * (uncached + cache read + cache write). Same rule as pi. + */ + tiers?: ReadonlyArray +} + +/** The prices of a call with more than `inputTokensAbove` input tokens. */ +export interface ModelCostTier { + inputTokensAbove: number + input: number + output: number + cacheRead: number + cacheWrite: number +} + +/** One model of one provider. */ +export interface ModelRecord { + /** The model id to send. pi uses the same ids. */ + id: string + /** The provider id, for example `'deepseek'`. */ + provider: string + name: string + api: WireApi + /** The default endpoint. `{VAR}` parts come from the environment. */ + baseUrl: string + input: ReadonlyArray + reasoning: ModelReasoning + cost: ModelCostRates + /** Tokens. `0` means not known. */ + contextWindow: number + /** The most output tokens. `0` means not known. */ + maxTokens: number + headers?: Readonly> + compat?: ModelCompat + /** The data came from the same model at another provider, for example `'anthropic/claude-sonnet-4-5'`. */ + borrowedFrom?: string +} + +/** One provider. */ +export interface ProviderRecord { + id: string + name: string + /** The default endpoint. A model can have its own `baseUrl`. */ + baseUrl: string + apis: ReadonlyArray + /** + * Where the credentials come from: a list of alternatives. Each one is a + * set of environment variables that must all be set, for example + * `[['AWS_PROFILE'], ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY']]`. + */ + env: ReadonlyArray> +} + +/** Token counts of one call. `input` is the uncached input only. */ +export interface TokenCounts { + input: number + output: number + cacheRead?: number + cacheWrite?: number + /** + * The part of `cacheWrite` written with a 1-hour retention + * (`promptCache: 'long'` on Anthropic). It costs 2x the input price. + */ + cacheWrite1h?: number +} + +/** What a call cost, in USD. */ +export interface Cost { + input: number + output: number + cacheRead: number + cacheWrite: number + total: number +} diff --git a/packages/ai-models/tests/catalog.test.ts b/packages/ai-models/tests/catalog.test.ts new file mode 100644 index 0000000000..3b6c2b79a7 --- /dev/null +++ b/packages/ai-models/tests/catalog.test.ts @@ -0,0 +1,251 @@ +import { describe, expect, it } from 'vitest' +import { + clampReasoningLevel as coreClamp, + supportedReasoningLevels as coreSupported, +} from '@tanstack/ai' +import type { ModelReasoning as CoreModelReasoning } from '@tanstack/ai' +import { + clampReasoningLevel, + generatedAt, + getModel, + getModels, + getProviders, + modelCost, + supportedReasoningLevels, +} from '../src' +import * as deepseek from '../src/providers/deepseek' +import type { Cost, ModelReasoning, ReasoningLevel } from '../src' + +describe('the catalog', () => { + it('has one module per provider, and the root lists them all', () => { + expect(getProviders()).toHaveLength(38) + expect(getModels('deepseek')).toBe(deepseek.models) + expect(getModels('unknown')).toEqual([]) + expect(generatedAt).toMatch(/^\d{4}-\d{2}-\d{2}$/) + }) + + it('finds a model and gives its quirks (DeepSeek replays reasoning)', () => { + const model = getModel('deepseek', 'deepseek-v4-flash') + expect(model).toMatchObject({ + provider: 'deepseek', + api: 'openai-completions', + baseUrl: 'https://api.deepseek.com', + reasoning: { levels: { off: 'none', max: 'max' }, budget: false }, + compat: { + thinkingFormat: 'deepseek', + maxTokensField: 'max_tokens', + requiresReasoningContentOnAssistantMessages: true, + }, + }) + expect(model?.contextWindow).toBeGreaterThan(0) + expect(getModel('deepseek', 'no-such-model')).toBeUndefined() + }) + + it('serves OpenRouter Claude on the Anthropic wire, and the rest on completions', () => { + expect(getModel('openrouter', 'anthropic/claude-opus-4.5')).toMatchObject({ + api: 'anthropic-messages', + baseUrl: 'https://openrouter.ai/api', + compat: { cacheControlFormat: 'anthropic', supportsDeveloperRole: true }, + }) + expect( + getModels('openrouter').find((model) => model.id.startsWith('z-ai/')), + ).toMatchObject({ + api: 'openai-completions', + compat: { thinkingFormat: 'openrouter', supportsDeveloperRole: false }, + }) + }) + + it('leaves out models that are on another wire (Claude on Azure and Vertex)', () => { + for (const provider of ['azure-openai-responses', 'google-vertex']) + expect( + getModels(provider).filter((model) => model.id.startsWith('claude-')), + ).toEqual([]) + }) + + it('lists credential alternatives, each a set of variables', () => { + const bedrock = getProviders().find((p) => p.id === 'amazon-bedrock') + expect(bedrock?.env).toContainEqual([ + 'AWS_ACCESS_KEY_ID', + 'AWS_SECRET_ACCESS_KEY', + ]) + const vertex = getProviders().find((p) => p.id === 'google-vertex') + expect(vertex?.env[0]).toEqual(['GOOGLE_CLOUD_API_KEY']) + }) + + it('marks a model whose data came from another provider', () => { + expect( + getModel('cloudflare-ai-gateway', 'workers-ai/@cf/openai/gpt-oss-120b') + ?.borrowedFrom, + ).toBe('cloudflare-workers-ai/@cf/openai/gpt-oss-120b') + }) +}) + +describe('modelCost', () => { + // Long-context prices above 200k and 1M input tokens, like a tiered record. + const tiered = { + cost: { + input: 2, + output: 10, + cacheRead: 0.2, + cacheWrite: 2.5, + tiers: [ + { + inputTokensAbove: 1_000_000, + input: 6, + output: 30, + cacheRead: 0.6, + cacheWrite: 7.5, + }, + { + inputTokensAbove: 200_000, + input: 4, + output: 20, + cacheRead: 0.4, + cacheWrite: 5, + }, + ], + }, + } + + /** Each part of `cost` is close to `expected` (USD floats). */ + const expectCost = (cost: Cost, expected: Cost) => { + for (const key of Object.keys(expected) as Array) + expect(cost[key]).toBeCloseTo(expected[key], 10) + } + + it('uses the base prices at or below the lowest tier', () => { + expectCost(modelCost(tiered, { input: 200_000, output: 1_000_000 }), { + input: 0.4, + output: 10, + cacheRead: 0, + cacheWrite: 0, + total: 10.4, + }) + }) + + it('uses the highest tier below the input, with the cache parts counted', () => { + // 150k uncached + 60k cache read = 210k input: the 200k tier. + expectCost( + modelCost(tiered, { input: 150_000, output: 0, cacheRead: 60_000 }), + { input: 0.6, output: 0, cacheRead: 0.024, cacheWrite: 0, total: 0.624 }, + ) + expect( + modelCost(tiered, { input: 1_500_000, output: 0 }).input, + ).toBeCloseTo(9, 10) + }) + + it('prices a 1-hour cache write at 2x the input price', () => { + const base = { + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + } + // 100k written: 40k with a 1-hour TTL, 60k with the 5-minute price. + expectCost( + modelCost(base, { + input: 0, + output: 0, + cacheWrite: 100_000, + cacheWrite1h: 40_000, + }), + { input: 0, output: 0, cacheRead: 0, cacheWrite: 0.465, total: 0.465 }, + ) + }) + + it('counts no more 1-hour writes than cache writes', () => { + const base = { + cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, + } + expect( + modelCost(base, { input: 0, output: 0, cacheWrite1h: 40_000 }).cacheWrite, + ).toBe(0) + }) + + it('takes the 1-hour price from the tier', () => { + // 300k written in all, so the 200k tier: 2 x 4 for the 1-hour part. + expect( + modelCost(tiered, { + input: 0, + output: 0, + cacheWrite: 300_000, + cacheWrite1h: 300_000, + }).cacheWrite, + ).toBeCloseTo(2.4, 10) + }) + + it('has the models.dev tiers on catalog records', () => { + const record = getModel('openai', 'gpt-5.5') + expect(record?.cost.tiers).toEqual([ + expect.objectContaining({ inputTokensAbove: 272000 }), + ]) + }) + + it('prices each part per 1M tokens', () => { + const cost = modelCost( + { cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 } }, + { input: 1_000_000, output: 100_000, cacheRead: 500_000 }, + ) + expect(cost).toEqual({ + input: 3, + output: 1.5, + cacheRead: 0.15, + cacheWrite: 0, + total: 4.65, + }) + }) +}) + +describe('reasoning data matches @tanstack/ai', () => { + const data: ReadonlyArray = [ + false, + { + levels: { off: 'off', minimal: 'minimal', low: 'low', high: 'high' }, + budget: true, + }, + { + levels: { off: 'none', low: 'low', high: 'high', xhigh: 'xhigh' }, + budget: false, + }, + { levels: { max: 'max' }, budget: false }, + { levels: { off: 'off', high: 'high' }, budget: false }, + { levels: {}, budget: false }, + ] + const levels: ReadonlyArray = [ + 'off', + 'minimal', + 'low', + 'medium', + 'high', + 'xhigh', + 'max', + ] + + it.each(data)('gives the same levels and clamps for %j', (reasoning) => { + const model = { reasoning } + expect(supportedReasoningLevels(model)).toEqual(coreSupported(reasoning)) + for (const level of levels) + expect(clampReasoningLevel(model, level)).toBe( + coreClamp(reasoning, level), + ) + }) + + it('supports only off on a model that does not reason', () => { + expect(supportedReasoningLevels({ reasoning: false })).toEqual(['off']) + expect(clampReasoningLevel({ reasoning: false }, 'max')).toBe('off') + }) + + it('gives records the ModelReasoning shape of @tanstack/ai', () => { + const record = getModel('anthropic', 'claude-sonnet-4-5-20250929') + if (!record) throw new Error('Expected the catalog record') + const reasoning: CoreModelReasoning = record.reasoning + expect(reasoning).toEqual({ + levels: { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + }, + budget: true, + }) + expect(supportedReasoningLevels(record)).toEqual(coreSupported(reasoning)) + }) +}) diff --git a/packages/ai-models/tests/drift.test.ts b/packages/ai-models/tests/drift.test.ts new file mode 100644 index 0000000000..6ed4cbf135 --- /dev/null +++ b/packages/ai-models/tests/drift.test.ts @@ -0,0 +1,31 @@ +import { describe, expect, it } from 'vitest' +import { getModels, getProviders } from '../src' +import { BORROW, ONLY } from '../scripts/known-ids' +import { EXTRA_MODELS, MODEL_OVERRIDES } from '../scripts/overrides' +import { PROVIDERS } from '../scripts/providers' + +const rowIds = new Set(PROVIDERS.map((row) => row.id)) + +describe('drift', () => { + it('every generated provider has a rule row, and every row was generated', () => { + expect(new Set(getProviders().map((provider) => provider.id))).toEqual( + rowIds, + ) + }) + + it('every generated model belongs to a provider with a rule row', () => { + for (const provider of getProviders()) + for (const model of getModels(provider.id)) + expect(rowIds.has(model.provider), model.id).toBe(true) + }) + + it('every hand-kept list names a provider with a rule row', () => { + for (const list of [BORROW, ONLY, EXTRA_MODELS, MODEL_OVERRIDES]) + for (const id of Object.keys(list)) expect(rowIds.has(id), id).toBe(true) + }) + + it('every provider has at least one model', () => { + for (const provider of getProviders()) + expect(getModels(provider.id).length, provider.id).toBeGreaterThan(0) + }) +}) diff --git a/packages/ai-models/tests/parity.test.ts b/packages/ai-models/tests/parity.test.ts new file mode 100644 index 0000000000..ea30cca266 --- /dev/null +++ b/packages/ai-models/tests/parity.test.ts @@ -0,0 +1,64 @@ +import { readFileSync } from 'node:fs' +import { describe, expect, it } from 'vitest' +import { getModel } from '../src' + +// Parity with pi's built-in catalog. The pi +// snapshot is never committed. Point PI_CATALOG_SNAPSHOT at the JSON file to +// run this test. It fails on a missing id, and prints the fields that differ. +const snapshotPath = process.env.PI_CATALOG_SNAPSHOT + +interface PiModel { + id: string + api: string + baseUrl: string + reasoning: boolean + input: Array + contextWindow: number + maxTokens: number + cost: { input: number; output: number } +} + +// Providers with no TanStack adapter: not in the catalog. +const NOT_COVERED = new Set(['openai-codex', 'radius', 'github-copilot']) + +describe.skipIf(!snapshotPath)('parity with pi', () => { + it('resolves every model id of every covered provider', () => { + const snapshot: { + providers: Record }> + } = JSON.parse(readFileSync(snapshotPath ?? '', 'utf8')) + const missing: Array = [] + const differs: Record = {} + let total = 0 + for (const [providerId, provider] of Object.entries(snapshot.providers)) { + if (NOT_COVERED.has(providerId)) continue + for (const piModel of provider.models) { + total++ + const model = getModel(providerId, piModel.id) + if (!model) { + missing.push(`${providerId}/${piModel.id}`) + continue + } + const checks: Record = { + api: model.api === piModel.api, + baseUrl: model.baseUrl === piModel.baseUrl, + reasoning: (model.reasoning !== false) === piModel.reasoning, + input: piModel.input.every((kind) => + model.input.includes(kind as never), + ), + contextWindow: model.contextWindow === piModel.contextWindow, + maxTokens: model.maxTokens === piModel.maxTokens, + cost: + model.cost.input === piModel.cost.input && + model.cost.output === piModel.cost.output, + } + for (const [field, same] of Object.entries(checks)) + if (!same) differs[field] = (differs[field] ?? 0) + 1 + } + } + console.log( + `pi parity: ${total - missing.length}/${total} resolve. Fields that differ (newer models.dev data is fine):`, + differs, + ) + expect(missing).toEqual([]) + }) +}) diff --git a/packages/ai-models/tests/rules.test.ts b/packages/ai-models/tests/rules.test.ts new file mode 100644 index 0000000000..f34e79ed01 --- /dev/null +++ b/packages/ai-models/tests/rules.test.ts @@ -0,0 +1,173 @@ +import { describe, expect, it } from 'vitest' +import { toRecord } from '../scripts/catalog' +import { PROVIDERS } from '../scripts/providers' +import { + inputModalities, + makesText, + modelHints, + reasoningLevelsFrom, + takesBudget, +} from '../scripts/rules' + +const completions = { api: 'openai-completions', baseUrl: 'x' } as const +const messages = { api: 'anthropic-messages', baseUrl: 'x' } as const + +describe('reasoningLevelsFrom (models.dev reasoning_options to levels)', () => { + it('maps effort values to their levels, and none to off', () => { + expect( + reasoningLevelsFrom([ + { type: 'effort', values: ['none', 'low', 'medium', 'high', 'xhigh'] }, + ]), + ).toEqual({ + off: 'none', + low: 'low', + medium: 'medium', + high: 'high', + xhigh: 'xhigh', + }) + }) + + it('cannot turn thinking off when effort has no none and there is no toggle', () => { + expect( + reasoningLevelsFrom([{ type: 'effort', values: ['low', 'high', 'max'] }]), + ).toEqual({ low: 'low', high: 'high', max: 'max' }) + }) + + it('a toggle next to effort gives the none off value (DeepSeek V4)', () => { + expect( + reasoningLevelsFrom([ + { type: 'toggle' }, + { type: 'effort', values: ['low', 'high', 'max'] }, + ]), + ).toEqual({ off: 'none', low: 'low', high: 'high', max: 'max' }) + }) + + it('default with no high is the high value (Groq)', () => { + expect( + reasoningLevelsFrom([{ type: 'effort', values: ['none', 'default'] }]), + ).toEqual({ off: 'none', high: 'default' }) + }) + + it('a toggle alone gives only off and high', () => { + expect(reasoningLevelsFrom([{ type: 'toggle' }])).toEqual({ + off: 'off', + high: 'high', + }) + }) + + it('a token budget or no options gives every level up to high', () => { + const upToHigh = { + off: 'off', + minimal: 'minimal', + low: 'low', + medium: 'medium', + high: 'high', + } + expect(reasoningLevelsFrom([{ type: 'budget_tokens', min: 1024 }])).toEqual( + upToHigh, + ) + expect(reasoningLevelsFrom([])).toEqual(upToHigh) + expect(reasoningLevelsFrom(undefined)).toEqual(upToHigh) + expect(takesBudget([{ type: 'toggle' }, { type: 'budget_tokens' }])).toBe( + true, + ) + }) +}) + +describe('modelHints', () => { + it('asks for reasoning_content replay when the model interleaves it', () => { + expect( + modelHints( + { id: 'm', interleaved: { field: 'reasoning_content' } }, + completions, + false, + ), + ).toEqual({ requiresReasoningContentOnAssistantMessages: true }) + }) + + it('reads temperature support', () => { + expect( + modelHints({ id: 'm', temperature: false }, messages, false), + ).toEqual({ supportsTemperature: false }) + }) + + it('gives adaptive thinking to Claude 4.6 and later only (pi), with dash or dot ids', () => { + const effort = [{ type: 'effort', values: ['low', 'high'] }] + const adaptive = (id: string) => + modelHints({ id, reasoning_options: effort }, messages, false) + .forceAdaptiveThinking === true + expect(adaptive('claude-opus-4-7')).toBe(true) + expect(adaptive('anthropic/claude-opus-4.7')).toBe(true) + expect(adaptive('anthropic/claude-sonnet-4.6')).toBe(true) + expect(adaptive('claude-fable-5-1')).toBe(true) + expect(adaptive('claude-opus-4-5')).toBe(false) + expect(adaptive('anthropic/claude-sonnet-4.5')).toBe(false) + expect(adaptive('claude-sonnet-4-20250514')).toBe(false) + // models.dev lists `effort` for it, but a gateway gives it budget thinking. + expect(adaptive('openai/gpt-5')).toBe(false) + }) + + it('follows the effort option for reasoning_effort when the row asks for it', () => { + const effort = { + id: 'm', + reasoning_options: [{ type: 'effort', values: ['low'] }], + } + expect(modelHints(effort, completions, true)).toEqual({ + supportsReasoningEffort: true, + }) + expect(modelHints({ id: 'm' }, completions, true)).toEqual({ + supportsReasoningEffort: false, + }) + }) +}) + +describe('models and inputs', () => { + it('keeps chat models, and leaves out embedding and transcription models', () => { + expect(makesText({ id: 'gpt-5.6' })).toBe(true) + expect( + makesText({ id: 'gpt-image-2', modalities: { output: ['image'] } }), + ).toBe(false) + expect(makesText({ id: 'text-embedding-3-small' })).toBe(false) + expect(makesText({ id: 'whisper-large-v3' })).toBe(false) + }) + + it('takes a tier price models.dev leaves out from the base price', () => { + const row = PROVIDERS.find((provider) => provider.id === 'google') + if (!row) throw new Error('Expected the google row') + const record = toRecord( + row, + 'm', + { + id: 'm', + cost: { + input: 1, + output: 2, + cache_read: 0.1, + cache_write: 0.5, + tiers: [ + { input: 3, output: 4, tier: { type: 'context', size: 200_000 } }, + ], + }, + }, + 'm', + ) + expect(record.cost.tiers).toEqual([ + { + inputTokensAbove: 200_000, + input: 3, + output: 4, + cacheRead: 0.1, + cacheWrite: 0.5, + }, + ]) + }) + + it('maps input kinds and keeps text as the fallback', () => { + expect(inputModalities(['text', 'image', 'pdf'])).toEqual([ + 'text', + 'image', + 'document', + ]) + expect(inputModalities(['weird'])).toEqual(['text']) + }) +}) diff --git a/packages/ai-models/tsconfig.json b/packages/ai-models/tsconfig.json new file mode 100644 index 0000000000..f27905e257 --- /dev/null +++ b/packages/ai-models/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src", "tests", "scripts"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/ai-models/vite.config.ts b/packages/ai-models/vite.config.ts new file mode 100644 index 0000000000..6385a078d0 --- /dev/null +++ b/packages/ai-models/vite.config.ts @@ -0,0 +1,45 @@ +import { readdirSync } from 'node:fs' +import { defineConfig, mergeConfig } from 'vitest/config' +import { tanstackViteConfig } from '@tanstack/vite-config' +import packageJson from './package.json' + +// One entry per provider file, so each one is its own subpath export. The +// folder is read next to this file, so tools that load the config from the +// repo root (knip) find it too. +const providerEntries = readdirSync(new URL('./src/providers', import.meta.url)) + .filter((file) => file.endsWith('.ts')) + .map((file) => `./src/providers/${file}`) + +const config = defineConfig({ + test: { + name: packageJson.name, + dir: './', + watch: false, + globals: true, + environment: 'node', + include: ['tests/**/*.test.ts'], + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html', 'lcov'], + exclude: [ + 'node_modules/', + 'dist/', + 'tests/', + 'scripts/', + '**/*.test.ts', + '**/*.config.ts', + '**/types.ts', + ], + include: ['src/**/*.ts'], + }, + }, +}) + +export default mergeConfig( + config, + tanstackViteConfig({ + entry: ['./src/index.ts', ...providerEntries], + srcDir: './src', + cjs: false, + }), +) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ad881287d..547a83d6ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3092,6 +3092,21 @@ importers: specifier: ^8.2.1 version: 8.2.1(@types/node@24.10.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(terser@5.44.1)(tsx@4.23.12)(yaml@2.9.0) + packages/ai-models: + devDependencies: + '@tanstack/ai': + specifier: workspace:* + version: link:../ai + '@types/node': + specifier: ^24.10.1 + version: 24.10.3 + '@vitest/coverage-v8': + specifier: 4.1.10 + version: 4.1.10(vitest@4.1.11) + vite: + specifier: ^8.2.1 + version: 8.2.1(@types/node@24.10.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(terser@5.44.1)(tsx@4.23.12)(yaml@2.9.0) + packages/ai-octane: dependencies: '@tanstack/ai-client': diff --git a/scripts/fetch-models-dev.ts b/scripts/fetch-models-dev.ts new file mode 100644 index 0000000000..0ef4b8c4e2 --- /dev/null +++ b/scripts/fetch-models-dev.ts @@ -0,0 +1,141 @@ +/** + * Fetches the models.dev catalog and writes the part `@tanstack/ai-models` + * reads to `models-dev.models.json`: the providers in + * `packages/ai-models/scripts/providers.ts`, the models the borrow list + * takes, and only the fields the generator uses. + * + * Usage: + * pnpm tsx scripts/fetch-models-dev.ts + * + * The output is plain JSON, so an upstream response cannot put code in the + * build. + */ + +import { writeFile } from 'node:fs/promises' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { PROVIDERS } from '../packages/ai-models/scripts/providers' +import { BORROW } from '../packages/ai-models/scripts/known-ids' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const OUTPUT_PATH = resolve(__dirname, 'models-dev.models.json') +const API_URL = 'https://models.dev/api.json' + +interface ApiModel { + id: string + name?: string + reasoning?: boolean + reasoning_options?: Array + interleaved?: unknown + temperature?: boolean + modalities?: { input?: Array; output?: Array } + cost?: { + input?: number + output?: number + cache_read?: number + cache_write?: number + /** Higher prices above an input size, for example long context. */ + tiers?: Array<{ + input?: number + output?: number + cache_read?: number + cache_write?: number + tier?: { type?: string; size?: number } + }> + } + limit?: { context?: number; output?: number } + provider?: { npm?: string; api?: string } +} + +interface ApiProvider { + id: string + name?: string + env?: Array + npm?: string + api?: string + models?: Record +} + +const trimModel = (model: ApiModel) => ({ + id: model.id, + name: model.name, + reasoning: model.reasoning, + reasoning_options: model.reasoning_options, + interleaved: model.interleaved, + temperature: model.temperature, + modalities: model.modalities, + cost: model.cost && { + input: model.cost.input, + output: model.cost.output, + cache_read: model.cost.cache_read, + cache_write: model.cost.cache_write, + tiers: model.cost.tiers?.map((tier) => ({ + input: tier.input, + output: tier.output, + cache_read: tier.cache_read, + cache_write: tier.cache_write, + tier: tier.tier && { type: tier.tier.type, size: tier.tier.size }, + })), + }, + limit: model.limit && { + context: model.limit.context, + output: model.limit.output, + }, + provider: model.provider && { + npm: model.provider.npm, + api: model.provider.api, + }, +}) + +async function main() { + const response = await fetch(API_URL) + if (!response.ok) + throw new Error( + `models.dev answered ${response.status} ${response.statusText}`, + ) + const catalog = (await response.json()) as Record + + // Every model of a catalog provider. From the other providers, only the + // models the borrow list takes. It names `provider/model`, and model ids + // can hold `/` too, so the provider is the part before the first one. + const whole = new Set(PROVIDERS.flatMap((row) => row.sources)) + const borrowed = new Map>() + for (const entries of Object.values(BORROW)) + for (const source of Object.values(entries)) { + const slash = source.indexOf('/') + const provider = source.slice(0, slash) + if (whole.has(provider)) continue + borrowed.set( + provider, + (borrowed.get(provider) ?? new Set()).add(source.slice(slash + 1)), + ) + } + + const trimmed: Record = {} + for (const id of [...whole, ...borrowed.keys()].sort()) { + const provider = catalog[id] + if (!provider) { + console.warn(` Warning: models.dev has no provider '${id}'`) + continue + } + const keep = borrowed.get(id) + trimmed[id] = { + id: provider.id, + name: provider.name, + env: provider.env, + npm: provider.npm, + api: provider.api, + models: Object.fromEntries( + Object.entries(provider.models ?? {}) + .filter(([key]) => !keep || keep.has(key)) + .map(([key, model]) => [key, trimModel(model)]), + ), + } + } + await writeFile(OUTPUT_PATH, `${JSON.stringify(trimmed, null, 2)}\n`) + console.log( + `Wrote ${Object.keys(trimmed).length} providers to ${OUTPUT_PATH}`, + ) +} + +await main() diff --git a/scripts/generate-ai-models.ts b/scripts/generate-ai-models.ts new file mode 100644 index 0000000000..babc8712ea --- /dev/null +++ b/scripts/generate-ai-models.ts @@ -0,0 +1,105 @@ +/** + * Writes the catalog of `@tanstack/ai-models`: + * - `src/providers/.ts`: one file per provider (a subpath export each) + * - `src/catalog.ts`: every provider, and the `generatedAt` date + * - the `exports` of `package.json` + * + * Input: `scripts/models-dev.models.json` (from `scripts/fetch-models-dev.ts`) + * and the OpenRouter and Vercel lists of the existing fetchers. + * + * Usage: + * pnpm tsx scripts/generate-ai-models.ts + */ + +import { mkdir, readFile, rm, writeFile } from 'node:fs/promises' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { models as openrouterModels } from './openrouter.models' +import { models as vercelModels } from './vercel-gateway.models' +import { + buildModels, + buildProvider, +} from '../packages/ai-models/scripts/catalog' +import { PROVIDERS } from '../packages/ai-models/scripts/providers' +import { fromOpenRouter, fromVercel } from './model-sync/gateway-models' +import type { DevCatalog } from '../packages/ai-models/scripts/catalog' + +const here = dirname(fileURLToPath(import.meta.url)) +const packageDir = resolve(here, '../packages/ai-models') +const providersDir = resolve(packageDir, 'src/providers') + +/** `qwen-token-plan-cn` as `qwenTokenPlanCn`. */ +const identifier = (id: string) => + id.replace(/-([a-z0-9])/g, (_match, char: string) => char.toUpperCase()) + +const HEADER = + '// Generated by scripts/generate-ai-models.ts from models.dev. Do not edit.\n' + +async function main() { + const dev: DevCatalog = JSON.parse( + await readFile(resolve(here, 'models-dev.models.json'), 'utf8'), + ) + const gateways = { + openrouter: openrouterModels.map(fromOpenRouter), + 'vercel-ai-gateway': vercelModels.map(fromVercel), + } + + await rm(providersDir, { recursive: true, force: true }) + await mkdir(providersDir, { recursive: true }) + let total = 0 + for (const row of PROVIDERS) { + const models = buildModels(row, { dev, gateways }) + const provider = buildProvider(row, models) + total += models.length + await writeFile( + resolve(providersDir, `${row.id}.ts`), + `${HEADER}import type { ModelRecord, ProviderRecord } from '../types' + +/** ${row.name}. */ +export const provider: ProviderRecord = ${JSON.stringify(provider)} + +/** Every ${row.name} model, sorted by id. */ +export const models: ReadonlyArray = ${JSON.stringify(models)} +`, + ) + } + + const ids = PROVIDERS.map((row) => row.id) + const generatedAt = new Date().toISOString().slice(0, 10) + await writeFile( + resolve(packageDir, 'src/catalog.ts'), + `${HEADER}${ids + .map((id) => `import * as ${identifier(id)} from './providers/${id}'`) + .join('\n')} + +/** The day the catalog was generated, as \`YYYY-MM-DD\`. */ +export const generatedAt = '${generatedAt}' + +/** Every provider module, in id order. */ +export const providerModules = [${ids.map(identifier).join(', ')}] +`, + ) + + // One subpath per provider, so a build ships only the providers it uses. + const packageJsonPath = resolve(packageDir, 'package.json') + const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8')) + packageJson.exports = { + '.': { + types: './dist/esm/index.d.ts', + import: './dist/esm/index.js', + }, + ...Object.fromEntries( + ids.map((id) => [ + `./${id}`, + { + types: `./dist/esm/providers/${id}.d.ts`, + import: `./dist/esm/providers/${id}.js`, + }, + ]), + ), + } + await writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`) + console.log(`Wrote ${ids.length} providers and ${total} models.`) +} + +await main() diff --git a/scripts/model-sync/gateway-models.ts b/scripts/model-sync/gateway-models.ts new file mode 100644 index 0000000000..2c57e9fdaf --- /dev/null +++ b/scripts/model-sync/gateway-models.ts @@ -0,0 +1,87 @@ +/** + * The OpenRouter and Vercel AI Gateway model lists, in models.dev's shape, so + * the model-catalog generator reads one format. + */ + +import type { OpenRouterModel } from '../openrouter.models' +import type { VercelGatewayCatalogModel } from '../vercel-gateway.models' +import type { + DevModel, + ReasoningOptionEntry, +} from '../../packages/ai-models/scripts/rules' + +/** A price per token (a string) as USD per 1M tokens. */ +function perMillion(price: unknown): number | undefined { + const value = typeof price === 'string' ? Number(price) : undefined + if (value === undefined || !Number.isFinite(value) || value < 0) + return undefined + return Math.round(value * 1e12) / 1e6 +} + +const inputKind = (kind: string) => (kind === 'file' ? 'pdf' : kind) + +/** An OpenRouter API model in models.dev's shape. */ +export function fromOpenRouter(model: OpenRouterModel): DevModel { + const params = model.supported_parameters ?? [] + const efforts = model.reasoning?.supported_efforts + return { + id: model.id, + name: model.name, + reasoning: params.includes('reasoning'), + ...(efforts?.length + ? { reasoning_options: [{ type: 'effort', values: efforts }] } + : {}), + temperature: params.includes('temperature'), + modalities: { + input: model.architecture.input_modalities.map(inputKind), + output: model.architecture.output_modalities, + }, + cost: { + input: perMillion(model.pricing.prompt), + output: perMillion(model.pricing.completion), + cache_read: perMillion(model.pricing.input_cache_read), + cache_write: perMillion(model.pricing.input_cache_write), + }, + limit: { + context: model.context_length, + output: model.top_provider.max_completion_tokens ?? undefined, + }, + } +} + +/** A Vercel AI Gateway model in models.dev's shape. */ +export function fromVercel(model: VercelGatewayCatalogModel): DevModel { + const pricing = + typeof model.pricing === 'object' && model.pricing !== null + ? (model.pricing as Record) + : {} + const options = Array.isArray(model.reasoning_options) + ? (model.reasoning_options as ReadonlyArray) + : undefined + const params = model.supported_parameters ?? [] + return { + id: model.id, + name: typeof model.name === 'string' ? model.name : model.id, + reasoning: + params.includes('reasoning') || (model.tags ?? []).includes('reasoning'), + ...(options ? { reasoning_options: options } : {}), + ...(typeof model.temperature === 'boolean' + ? { temperature: model.temperature } + : {}), + modalities: { + input: (model.modalities?.input ?? ['text']).map(inputKind), + output: model.modalities?.output ?? ['text'], + }, + cost: { + input: perMillion(pricing.input), + output: perMillion(pricing.output), + cache_read: perMillion(pricing.input_cache_read), + cache_write: perMillion(pricing.input_cache_write), + }, + limit: { + context: + typeof model.context_window === 'number' ? model.context_window : 0, + output: typeof model.max_tokens === 'number' ? model.max_tokens : 0, + }, + } +} diff --git a/scripts/models-dev.models.json b/scripts/models-dev.models.json new file mode 100644 index 0000000000..122579a262 --- /dev/null +++ b/scripts/models-dev.models.json @@ -0,0 +1,49738 @@ +{ + "alibaba": { + "id": "alibaba", + "name": "Alibaba", + "env": ["DASHSCOPE_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", + "models": { + "qwen-flash": { + "id": "qwen-flash", + "name": "Qwen Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4 + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen3.5-flash": { + "id": "qwen3.5-flash", + "name": "Qwen3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0.125 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen3.7-max": { + "id": "qwen3.7-max", + "name": "Qwen3.7 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.5, + "cache_write": 3.125 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen2-5-32b-instruct": { + "id": "qwen2-5-32b-instruct", + "name": "Qwen2.5 32B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.8 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwq-plus": { + "id": "qwq-plus", + "name": "QwQ Plus", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 2.4 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen2-5-vl-72b-instruct": { + "id": "qwen2-5-vl-72b-instruct", + "name": "Qwen2.5-VL 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.8, + "output": 8.4 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-vl-plus": { + "id": "qwen3-vl-plus", + "name": "Qwen3-VL Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.6 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen3.5-27b": { + "id": "qwen3.5-27b", + "name": "Qwen3.5 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.4 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "deepseek-v4-flash-0731": { + "id": "deepseek-v4-flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.4, + "cache_read": 0.04 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "qwen-max": { + "id": "qwen-max", + "name": "Qwen Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.6, + "output": 6.4 + }, + "limit": { + "context": 32768, + "output": 8192 + } + }, + "qwen3-next-80b-a3b-thinking": { + "id": "qwen3-next-80b-a3b-thinking", + "name": "Qwen3-Next 80B-A3B (Thinking)", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 6 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen3.8-max": { + "id": "qwen3.8-max", + "name": "Qwen3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k3": { + "id": "kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "qwen-plus-character-ja": { + "id": "qwen-plus-character-ja", + "name": "Qwen Plus Character (Japanese)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.4 + }, + "limit": { + "context": 8192, + "output": 512 + } + }, + "qwen3.5-plus": { + "id": "qwen3.5-plus", + "name": "Qwen3.5 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2.4 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen3-livetranslate-flash-realtime": { + "id": "qwen3-livetranslate-flash-realtime", + "name": "Qwen3-LiveTranslate Flash Realtime", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 10, + "output": 10 + }, + "limit": { + "context": 53248, + "output": 4096 + } + }, + "qwen2-5-72b-instruct": { + "id": "qwen2-5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 5.6 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-32b": { + "id": "qwen3-32b", + "name": "Qwen3 32B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.8 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen-plus": { + "id": "qwen-plus", + "name": "Qwen Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.2 + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen3.7-flash": { + "id": "qwen3.7-flash", + "name": "Qwen3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.13, + "cache_read": 0.003, + "cache_write": 0.0375, + "tiers": [ + { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0.125, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 0.2, + "output": 0.8, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen3-max": { + "id": "qwen3-max", + "name": "Qwen3 Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 6 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen-omni-turbo-realtime": { + "id": "qwen-omni-turbo-realtime", + "name": "Qwen-Omni Turbo Realtime", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.27, + "output": 1.07 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "qwen3-coder-480b-a35b-instruct": { + "id": "qwen3-coder-480b-a35b-instruct", + "name": "Qwen3-Coder 480B-A35B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "tiers": [ + { + "input": 2.7, + "output": 13.5, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 4.5, + "output": 22.5, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen-turbo": { + "id": "qwen-turbo", + "name": "Qwen Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2 + }, + "limit": { + "context": 1000000, + "output": 16384 + } + }, + "qwen3-coder-30b-a3b-instruct": { + "id": "qwen3-coder-30b-a3b-instruct", + "name": "Qwen3-Coder 30B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 2.25, + "tiers": [ + { + "input": 0.75, + "output": 3.75, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 1.2, + "output": 6, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3.8-omni-flash": { + "id": "qwen3.8-omni-flash", + "name": "Qwen3.8 Omni Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "xhigh"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qvq-max": { + "id": "qvq-max", + "name": "QVQ Max", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4.8 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen2-5-7b-instruct": { + "id": "qwen2-5-7b-instruct", + "name": "Qwen2.5 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.175, + "output": 0.7 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-omni-flash": { + "id": "qwen3-omni-flash", + "name": "Qwen3-Omni Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.43, + "output": 1.66 + }, + "limit": { + "context": 65536, + "output": 16384 + } + }, + "qwen-vl-max": { + "id": "qwen-vl-max", + "name": "Qwen-VL Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 3.2 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-235b-a22b": { + "id": "qwen3-235b-a22b", + "name": "Qwen3 235B-A22B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.8 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen3-vl-30b-a3b": { + "id": "qwen3-vl-30b-a3b", + "name": "Qwen3-VL 30B-A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.8 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen3.5-122b-a10b": { + "id": "qwen3.5-122b-a10b", + "name": "Qwen3.5 122B-A10B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 3.2 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3.6-35b-a3b": { + "id": "qwen3.6-35b-a3b", + "name": "Qwen3.6 35B-A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.248, + "output": 1.485 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3-next-80b-a3b-instruct": { + "id": "qwen3-next-80b-a3b-instruct", + "name": "Qwen3-Next 80B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 2 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen-vl-plus": { + "id": "qwen-vl-plus", + "name": "Qwen-VL Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.21, + "output": 0.63 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3.6-flash": { + "id": "qwen3.6-flash", + "name": "Qwen3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1875, + "output": 1.125, + "cache_write": 0.234375 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen3-coder-flash": { + "id": "qwen3-coder-flash", + "name": "Qwen3 Coder Flash", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.5 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen2-5-omni-7b": { + "id": "qwen2-5-omni-7b", + "name": "Qwen2.5-Omni 7B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.1, + "output": 0.4 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "qwen-mt-plus": { + "id": "qwen-mt-plus", + "name": "Qwen-MT Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.46, + "output": 7.37 + }, + "limit": { + "context": 16384, + "output": 8192 + } + }, + "qwen3-vl-235b-a22b": { + "id": "qwen3-vl-235b-a22b", + "name": "Qwen3-VL 235B-A22B", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.8 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen3-coder-plus": { + "id": "qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "qwen2-5-14b-instruct": { + "id": "qwen2-5-14b-instruct", + "name": "Qwen2.5 14B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 1.4 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3.8-flash": { + "id": "qwen3.8-flash", + "name": "Qwen3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016, + "cache_write": 0.2 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen2-5-vl-7b-instruct": { + "id": "qwen2-5-vl-7b-instruct", + "name": "Qwen2.5-VL 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 1.05 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3.5-35b-a3b": { + "id": "qwen3.5-35b-a3b", + "name": "Qwen3.5 35B-A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3.6-max-preview": { + "id": "qwen3.6-max-preview", + "name": "Qwen3.6 Max Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.3, + "output": 7.8, + "cache_read": 0.13, + "cache_write": 1.625 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen-mt-turbo": { + "id": "qwen-mt-turbo", + "name": "Qwen-MT Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.16, + "output": 0.49 + }, + "limit": { + "context": 16384, + "output": 8192 + } + }, + "qwen3.5-397b-a17b": { + "id": "qwen3.5-397b-a17b", + "name": "Qwen3.5 397B-A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3-8b": { + "id": "qwen3-8b", + "name": "Qwen3 8B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.18, + "output": 0.7 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "glm-5.2": { + "id": "glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.28, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen-omni-turbo": { + "id": "qwen-omni-turbo", + "name": "Qwen-Omni Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.07, + "output": 0.27 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "qwen3-omni-flash-realtime": { + "id": "qwen3-omni-flash-realtime", + "name": "Qwen3-Omni Flash Realtime", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.52, + "output": 1.99 + }, + "limit": { + "context": 65536, + "output": 16384 + } + }, + "qwen3-asr-flash": { + "id": "qwen3-asr-flash", + "name": "Qwen3-ASR Flash", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "cost": { + "input": 0.035, + "output": 0.035 + }, + "limit": { + "context": 53248, + "output": 4096 + } + }, + "qwen3.6-27b": { + "id": "qwen3.6-27b", + "name": "Qwen3.6 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3.6-plus": { + "id": "qwen3.6-plus", + "name": "Qwen3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen3-14b": { + "id": "qwen3-14b", + "name": "Qwen3 14B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 1.4 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3.7-plus": { + "id": "qwen3.7-plus", + "name": "Qwen3.7 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.04, + "cache_write": 0.5, + "tiers": [ + { + "input": 1.2, + "output": 4.8, + "cache_read": 0.12, + "cache_write": 1.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen-vl-ocr": { + "id": "qwen-vl-ocr", + "name": "Qwen-VL OCR", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 34096, + "output": 4096 + } + } + } + }, + "alibaba-cn": { + "id": "alibaba-cn", + "name": "Alibaba (China)", + "env": ["DASHSCOPE_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "models": { + "qwen-flash": { + "id": "qwen-flash", + "name": "Qwen Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.022, + "output": 0.216 + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen3.5-flash": { + "id": "qwen3.5-flash", + "name": "Qwen3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.029, + "output": 0.287, + "tiers": [ + { + "input": 0.115, + "output": 1.147, + "tier": { + "type": "context", + "size": 128000 + } + }, + { + "input": 0.172, + "output": 1.72, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen2-5-coder-32b-instruct": { + "id": "qwen2-5-coder-32b-instruct", + "name": "Qwen2.5-Coder 32B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.861 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "deepseek-v3-2-exp": { + "id": "deepseek-v3-2-exp", + "name": "DeepSeek V3.2 Exp", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.431 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "deepseek-r1-distill-qwen-14b": { + "id": "deepseek-r1-distill-qwen-14b", + "name": "DeepSeek R1 Distill Qwen 14B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.431 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "qwen-math-plus": { + "id": "qwen-math-plus", + "name": "Qwen Math Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 1.721 + }, + "limit": { + "context": 4096, + "output": 3072 + } + }, + "qwen-deep-research": { + "id": "qwen-deep-research", + "name": "Qwen Deep Research", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 7.742, + "output": 23.367 + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen3.7-max": { + "id": "qwen3.7-max", + "name": "Qwen3.7 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.5, + "cache_write": 3.125 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen2-5-32b-instruct": { + "id": "qwen2-5-32b-instruct", + "name": "Qwen2.5 32B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.861 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwq-plus": { + "id": "qwq-plus", + "name": "QwQ Plus", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.23, + "output": 0.574 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwq-32b": { + "id": "qwq-32b", + "name": "QwQ 32B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.861 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen2-5-vl-72b-instruct": { + "id": "qwen2-5-vl-72b-instruct", + "name": "Qwen2.5-VL 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.294, + "output": 6.881 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "deepseek-v3-1": { + "id": "deepseek-v3-1", + "name": "DeepSeek V3.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 1.721 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "qwen3-vl-plus": { + "id": "qwen3-vl-plus", + "name": "Qwen3-VL Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.143353, + "output": 1.433525 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen-plus-character": { + "id": "qwen-plus-character", + "name": "Qwen Plus Character", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.115, + "output": 0.287 + }, + "limit": { + "context": 32768, + "output": 4096 + } + }, + "qwen-max": { + "id": "qwen-max", + "name": "Qwen Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.345, + "output": 1.377 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-next-80b-a3b-thinking": { + "id": "qwen3-next-80b-a3b-thinking", + "name": "Qwen3-Next 80B-A3B (Thinking)", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 1.434 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen3.8-max": { + "id": "qwen3.8-max", + "name": "Qwen3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.77744, + "output": 5.33231, + "cache_read": 0.22218, + "cache_write": 2.22179 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k3": { + "id": "kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.827, + "output": 14.133, + "cache_read": 0.283 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "qwen2-5-math-7b-instruct": { + "id": "qwen2-5-math-7b-instruct", + "name": "Qwen2.5-Math 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.287 + }, + "limit": { + "context": 4096, + "output": 3072 + } + }, + "qwen3.5-plus": { + "id": "qwen3.5-plus", + "name": "Qwen3.5 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.115, + "output": 0.688, + "tiers": [ + { + "input": 0.287, + "output": 1.72, + "tier": { + "type": "context", + "size": 128000 + } + }, + { + "input": 0.573, + "output": 3.44, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen2-5-72b-instruct": { + "id": "qwen2-5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 1.721 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "glm-5": { + "id": "glm-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 32768 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.573, + "output": 2.58, + "tiers": [ + { + "input": 0.86, + "output": 3.154, + "tier": { + "type": "context", + "size": 32000 + } + } + ] + }, + "limit": { + "context": 202752, + "output": 16384 + } + }, + "deepseek-v4.1-flash": { + "id": "deepseek-v4.1-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.29754, + "output": 1.19015, + "cache_read": 0.01488 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek-r1-distill-llama-8b": { + "id": "deepseek-r1-distill-llama-8b", + "name": "DeepSeek R1 Distill Llama 8B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "qwen3-32b": { + "id": "qwen3-32b", + "name": "Qwen3 32B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 38912 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 1.147 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen2-5-coder-7b-instruct": { + "id": "qwen2-5-coder-7b-instruct", + "name": "Qwen2.5-Coder 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.287 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen-plus": { + "id": "qwen-plus", + "name": "Qwen Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.115, + "output": 0.287, + "cache_read": 0.012, + "cache_write": 0.144 + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen3.7-flash": { + "id": "qwen3.7-flash", + "name": "Qwen3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.02962, + "output": 0.1185, + "cache_read": 0.002962, + "cache_write": 0.03703, + "tiers": [ + { + "input": 0.08887, + "output": 0.35549, + "cache_read": 0.008887, + "cache_write": 0.11109, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 0.17774, + "output": 0.71098, + "cache_read": 0.017774, + "cache_write": 0.22218, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "Moonshot Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.929, + "output": 3.858 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "qwen3-max": { + "id": "qwen3-max", + "name": "Qwen3 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.359, + "output": 1.434, + "tiers": [ + { + "input": 0.574, + "output": 2.294, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 1.004, + "output": 4.014, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen-omni-turbo-realtime": { + "id": "qwen-omni-turbo-realtime", + "name": "Qwen-Omni Turbo Realtime", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.23, + "output": 0.918 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "deepseek-v3": { + "id": "deepseek-v3", + "name": "DeepSeek V3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 1.147 + }, + "limit": { + "context": 65536, + "output": 8192 + } + }, + "deepseek-r1-distill-llama-70b": { + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.861 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "qwen3-coder-480b-a35b-instruct": { + "id": "qwen3-coder-480b-a35b-instruct", + "name": "Qwen3-Coder 480B-A35B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.861, + "output": 3.441, + "tiers": [ + { + "input": 1.291, + "output": 5.161, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 2.151, + "output": 8.602, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen-turbo": { + "id": "qwen-turbo", + "name": "Qwen Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 38912 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.044, + "output": 0.087 + }, + "limit": { + "context": 1000000, + "output": 16384 + } + }, + "deepseek-r1-distill-qwen-7b": { + "id": "deepseek-r1-distill-qwen-7b", + "name": "DeepSeek R1 Distill Qwen 7B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.072, + "output": 0.144 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "qwen2-5-math-72b-instruct": { + "id": "qwen2-5-math-72b-instruct", + "name": "Qwen2.5-Math 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 1.721 + }, + "limit": { + "context": 4096, + "output": 3072 + } + }, + "qwen3-coder-30b-a3b-instruct": { + "id": "qwen3-coder-30b-a3b-instruct", + "name": "Qwen3-Coder 30B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.216, + "output": 0.861, + "tiers": [ + { + "input": 0.323, + "output": 1.291, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 0.538, + "output": 2.151, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen-doc-turbo": { + "id": "qwen-doc-turbo", + "name": "Qwen Doc Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.087, + "output": 0.144 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "kimi-k2-thinking": { + "id": "kimi-k2-thinking", + "name": "Moonshot Kimi K2 Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 2.294 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "qwen3.8-omni-flash": { + "id": "qwen3.8-omni-flash", + "name": "Qwen3.8 Omni Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "xhigh"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.113, + "output": 0.382, + "cache_read": 0.014 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qvq-max": { + "id": "qvq-max", + "name": "QVQ Max", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.147, + "output": 4.588 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen2-5-7b-instruct": { + "id": "qwen2-5-7b-instruct", + "name": "Qwen2.5 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.072, + "output": 0.144 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-omni-flash": { + "id": "qwen3-omni-flash", + "name": "Qwen3-Omni Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.058, + "output": 0.23 + }, + "limit": { + "context": 65536, + "output": 16384 + } + }, + "qwen-vl-max": { + "id": "qwen-vl-max", + "name": "Qwen-VL Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.23, + "output": 0.574 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3-235b-a22b": { + "id": "qwen3-235b-a22b", + "name": "Qwen3 235B-A22B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 38912 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 1.147 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen3-vl-30b-a3b": { + "id": "qwen3-vl-30b-a3b", + "name": "Qwen3-VL 30B-A3B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.108, + "output": 0.431 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "kimi-k2.5": { + "id": "kimi-k2.5", + "name": "Moonshot Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 2.411 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen3-next-80b-a3b-instruct": { + "id": "qwen3-next-80b-a3b-instruct", + "name": "Qwen3-Next 80B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.574 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen-vl-plus": { + "id": "qwen-vl-plus", + "name": "Qwen-VL Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.115, + "output": 0.287 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "deepseek-r1-distill-qwen-1-5b": { + "id": "deepseek-r1-distill-qwen-1-5b", + "name": "DeepSeek R1 Distill Qwen 1.5B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "qwen3.6-flash": { + "id": "qwen3.6-flash", + "name": "Qwen3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 131072 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1875, + "output": 1.125, + "cache_write": 0.234375 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen3-coder-flash": { + "id": "qwen3-coder-flash", + "name": "Qwen3 Coder Flash", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.574 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen2-5-omni-7b": { + "id": "qwen2-5-omni-7b", + "name": "Qwen2.5-Omni 7B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.087, + "output": 0.345 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "qwen-mt-plus": { + "id": "qwen-mt-plus", + "name": "Qwen-MT Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.259, + "output": 0.775 + }, + "limit": { + "context": 16384, + "output": 8192 + } + }, + "tongyi-intent-detect-v3": { + "id": "tongyi-intent-detect-v3", + "name": "Tongyi Intent Detect V3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.058, + "output": 0.144 + }, + "limit": { + "context": 8192, + "output": 1024 + } + }, + "qwen3-vl-235b-a22b": { + "id": "qwen3-vl-235b-a22b", + "name": "Qwen3-VL 235B-A22B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.286705, + "output": 1.14682 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen3-coder-plus": { + "id": "qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 2.296, + "tiers": [ + { + "input": 0.861, + "output": 3.444, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 1.435, + "output": 5.74, + "tier": { + "type": "context", + "size": 128000 + } + }, + { + "input": 2.87, + "output": 28.7, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "moonshot-kimi-k2-instruct": { + "id": "moonshot-kimi-k2-instruct", + "name": "Moonshot Kimi K2 Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 2.294 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "MiniMax-M2.5": { + "id": "MiniMax-M2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "qwen2-5-14b-instruct": { + "id": "qwen2-5-14b-instruct", + "name": "Qwen2.5 14B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.431 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen3.8-flash": { + "id": "qwen3.8-flash", + "name": "Qwen3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.11875, + "output": 0.40073, + "cache_read": 0.01187, + "cache_write": 0.14844 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen2-5-vl-7b-instruct": { + "id": "qwen2-5-vl-7b-instruct", + "name": "Qwen2.5-VL 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.717 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen-math-turbo": { + "id": "qwen-math-turbo", + "name": "Qwen Math Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.861 + }, + "limit": { + "context": 4096, + "output": 3072 + } + }, + "qwen-long": { + "id": "qwen-long", + "name": "Qwen Long", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.072, + "output": 0.287 + }, + "limit": { + "context": 10000000, + "output": 8192 + } + }, + "qwen3.6-max-preview": { + "id": "qwen3.6-max-preview", + "name": "Qwen3.6 Max Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 131072 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.32, + "output": 7.9, + "cache_read": 0.132 + }, + "limit": { + "context": 245800, + "output": 65536 + } + }, + "qwen-mt-turbo": { + "id": "qwen-mt-turbo", + "name": "Qwen-MT Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.101, + "output": 0.28 + }, + "limit": { + "context": 16384, + "output": 8192 + } + }, + "qwen3.5-397b-a17b": { + "id": "qwen3.5-397b-a17b", + "name": "Qwen3.5 397B-A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.172, + "output": 1.032, + "tiers": [ + { + "input": 0.43, + "output": 2.58, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen3-8b": { + "id": "qwen3-8b", + "name": "Qwen3 8B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 38912 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.072, + "output": 0.287 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "glm-5.2": { + "id": "glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 3.851, + "cache_read": 0.275, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "qwen-omni-turbo": { + "id": "qwen-omni-turbo", + "name": "Qwen-Omni Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.058, + "output": 0.23 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "glm-5.1": { + "id": "glm-5.1", + "name": "GLM-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 131072 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.825, + "output": 3.301, + "cache_read": 0.17, + "tiers": [ + { + "input": 1.1, + "output": 3.851, + "tier": { + "type": "context", + "size": 32000 + } + } + ] + }, + "limit": { + "context": 202752, + "output": 128000 + } + }, + "qwen3-omni-flash-realtime": { + "id": "qwen3-omni-flash-realtime", + "name": "Qwen3-Omni Flash Realtime", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.23, + "output": 0.918 + }, + "limit": { + "context": 65536, + "output": 16384 + } + }, + "qwen3-asr-flash": { + "id": "qwen3-asr-flash", + "name": "Qwen3-ASR Flash", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "cost": { + "input": 0.032, + "output": 0.032 + }, + "limit": { + "context": 53248, + "output": 4096 + } + }, + "deepseek-r1-distill-qwen-32b": { + "id": "deepseek-r1-distill-qwen-32b", + "name": "DeepSeek R1 Distill Qwen 32B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.287, + "output": 0.861 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "deepseek-r1": { + "id": "deepseek-r1", + "name": "DeepSeek R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 2.294 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "deepseek-v4-pro": { + "id": "deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.003625 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek-r1-0528": { + "id": "deepseek-r1-0528", + "name": "DeepSeek R1 0528", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.574, + "output": 2.294 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen3.6-plus": { + "id": "qwen3.6-plus", + "name": "Qwen3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen3-14b": { + "id": "qwen3-14b", + "name": "Qwen3 14B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 38912 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.144, + "output": 0.574 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "glm-5.3": { + "id": "glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 3.851, + "cache_read": 0.275, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen3.7-plus": { + "id": "qwen3.7-plus", + "name": "Qwen3.7 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "deepseek-v4-flash": { + "id": "deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "qwen-vl-ocr": { + "id": "qwen-vl-ocr", + "name": "Qwen-VL OCR", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.043, + "output": 0.072 + }, + "limit": { + "context": 34096, + "output": 4096 + } + }, + "siliconflow/deepseek-v3-0324": { + "id": "siliconflow/deepseek-v3-0324", + "name": "siliconflow/deepseek-v3-0324", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1 + }, + "limit": { + "context": 163840, + "output": 163840 + } + }, + "siliconflow/deepseek-v3.1-terminus": { + "id": "siliconflow/deepseek-v3.1-terminus", + "name": "siliconflow/deepseek-v3.1-terminus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 1 + }, + "limit": { + "context": 163840, + "output": 65536 + } + }, + "siliconflow/deepseek-r1-0528": { + "id": "siliconflow/deepseek-r1-0528", + "name": "siliconflow/deepseek-r1-0528", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 2.18 + }, + "limit": { + "context": 163840, + "output": 32768 + } + }, + "siliconflow/deepseek-v3.2": { + "id": "siliconflow/deepseek-v3.2", + "name": "siliconflow/deepseek-v3.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 0.42 + }, + "limit": { + "context": 163840, + "output": 65536 + } + }, + "kimi/kimi-k2.5": { + "id": "kimi/kimi-k2.5", + "name": "kimi/kimi-k2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3, + "cache_read": 0.1 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "MiniMax/MiniMax-M2.7": { + "id": "MiniMax/MiniMax-M2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + } + }, + "amazon-bedrock": { + "id": "amazon-bedrock", + "name": "Amazon Bedrock", + "env": [ + "AWS_ACCESS_KEY_ID", + "AWS_SECRET_ACCESS_KEY", + "AWS_REGION", + "AWS_BEARER_TOKEN_BEDROCK" + ], + "npm": "@ai-sdk/amazon-bedrock", + "models": { + "google.gemma-3-12b-it": { + "id": "google.gemma-3-12b-it", + "name": "Gemma 3 12B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.29 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "google.gemma-3-4b-it": { + "id": "google.gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.08 + }, + "limit": { + "context": 131072, + "output": 4096 + } + }, + "eu.anthropic.claude-fable-5": { + "id": "eu.anthropic.claude-fable-5", + "name": "Claude Fable 5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 11, + "output": 55, + "cache_read": 1.1, + "cache_write": 13.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "qwen.qwen3-coder-480b-a35b-v1:0": { + "id": "qwen.qwen3-coder-480b-a35b-v1:0", + "name": "Qwen3-Coder 480B-A35B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 1.8 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "google.gemma-4-31b": { + "id": "google.gemma-4-31b", + "name": "Gemma 4 31B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "us.writer.palmyra-x5-v1:0": { + "id": "us.writer.palmyra-x5-v1:0", + "name": "Palmyra X5 (US)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 6 + }, + "limit": { + "context": 1040000, + "output": 8192 + } + }, + "google.gemma-4-e2b": { + "id": "google.gemma-4-e2b", + "name": "Gemma 4 E2B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.08 + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "us.anthropic.claude-opus-4-7": { + "id": "us.anthropic.claude-opus-4-7", + "name": "Claude Opus 4.7 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.openai.gpt-6-astra": { + "id": "global.openai.gpt-6-astra", + "name": "GPT-6 Astra (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "eu.amazon.nova-lite-v1:0": { + "id": "eu.amazon.nova-lite-v1:0", + "name": "Nova Lite (EU)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.069, + "output": 0.276, + "cache_read": 0.01725, + "cache_write": 0.069 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "global.anthropic.claude-opus-5-5": { + "id": "global.anthropic.claude-opus-5-5", + "name": "Claude Opus 5.5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "deepseek.r1-v1:0": { + "id": "deepseek.r1-v1:0", + "name": "DeepSeek-R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.35, + "output": 5.4 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "openai.gpt-oss-safeguard-20b": { + "id": "openai.gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.2 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "anthropic.claude-opus-5-5": { + "id": "anthropic.claude-opus-5-5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-haiku-4-5-20251001-v1:0": { + "id": "global.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "eu.amazon.nova-2-lite-v1:0": { + "id": "eu.amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.374, + "output": 3.157, + "cache_read": 0.0935, + "cache_write": 0.374 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "us.amazon.nova-pro-v1:0": { + "id": "us.amazon.nova-pro-v1:0", + "name": "Nova Pro (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0.8 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "jp.anthropic.claude-opus-5-5": { + "id": "jp.anthropic.claude-opus-5-5", + "name": "Claude Opus 5.5 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.4, + "output": 22, + "cache_read": 0.22, + "cache_write": 5.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic.claude-sonnet-5-5": { + "id": "anthropic.claude-sonnet-5-5", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-sonnet-5-5": { + "id": "global.anthropic.claude-sonnet-5-5", + "name": "Claude Sonnet 5.5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai.gpt-5.6-luna": { + "id": "openai.gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 1.32, + "cache_read": 0.022, + "cache_write": 0.275, + "tiers": [ + { + "input": 0.44, + "output": 1.98, + "cache_read": 0.044, + "cache_write": 0.55, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "us.meta.llama4-maverick-17b-instruct-v1:0": { + "id": "us.meta.llama4-maverick-17b-instruct-v1:0", + "name": "Llama 4 Maverick 17B Instruct (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.24, + "output": 0.97 + }, + "limit": { + "context": 1000000, + "output": 8192 + } + }, + "apac.amazon.nova-micro-v1:0": { + "id": "apac.amazon.nova-micro-v1:0", + "name": "Nova Micro (APAC)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.037, + "output": 0.148, + "cache_read": 0.00925, + "cache_write": 0.037 + }, + "limit": { + "context": 128000, + "output": 10000 + } + }, + "eu.anthropic.claude-sonnet-4-20250514-v1:0": { + "id": "eu.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "eu.anthropic.claude-opus-4-5-20251101-v1:0": { + "id": "eu.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "global.openai.gpt-6-sol": { + "id": "global.openai.gpt-6-sol", + "name": "GPT-6 Sol (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "qwen.qwen3-coder-30b-a3b-v1:0": { + "id": "qwen.qwen3-coder-30b-a3b-v1:0", + "name": "Qwen3-Coder 30B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "us.amazon.nova-premier-v1:0": { + "id": "us.amazon.nova-premier-v1:0", + "name": "Nova Premier (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 12.5, + "cache_read": 0.625, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 10000 + } + }, + "anthropic.claude-sonnet-4-6": { + "id": "anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "meta.llama3-1-70b-instruct-v1:0": { + "id": "meta.llama3-1-70b-instruct-v1:0", + "name": "Llama 3.1 70B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "us.writer.palmyra-x4-v1:0": { + "id": "us.writer.palmyra-x4-v1:0", + "name": "Palmyra X4 (US)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 122880, + "output": 8192 + } + }, + "apac.amazon.nova-pro-v1:0": { + "id": "apac.amazon.nova-pro-v1:0", + "name": "Nova Pro (APAC)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.84, + "output": 3.36, + "cache_read": 0.21, + "cache_write": 0.84 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "global.anthropic.claude-fable-5-1": { + "id": "global.anthropic.claude-fable-5-1", + "name": "Claude Fable 5.1 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.anthropic.claude-sonnet-5": { + "id": "us.anthropic.claude-sonnet-5", + "name": "Claude Sonnet 5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 11, + "cache_read": 0.22, + "cache_write": 2.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "amazon.nova-micro-v1:0": { + "id": "amazon.nova-micro-v1:0", + "name": "Nova Micro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875, + "cache_write": 0.035 + }, + "limit": { + "context": 128000, + "output": 10000 + } + }, + "minimax.minimax-m2.5": { + "id": "minimax.minimax-m2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 196608, + "output": 98304 + } + }, + "xai.grok-4.3": { + "id": "xai.grok-4.3", + "name": "Grok 4.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2 + }, + "limit": { + "context": 1000000, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "us.amazon.nova-lite-v1:0": { + "id": "us.amazon.nova-lite-v1:0", + "name": "Nova Lite (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015, + "cache_write": 0.06 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "amazon.nova-pro-v1:0": { + "id": "amazon.nova-pro-v1:0", + "name": "Nova Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0.8 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "qwen.qwen3-32b-v1:0": { + "id": "qwen.qwen3-32b-v1:0", + "name": "Qwen3 32B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "openai.gpt-5.5": { + "id": "openai.gpt-5.5", + "name": "GPT-5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 33, + "cache_read": 0.55 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "mistral.voxtral-small-24b-2507": { + "id": "mistral.voxtral-small-24b-2507", + "name": "Voxtral Small 24B 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 32768, + "output": 8192 + } + }, + "global.amazon.nova-2-lite-v1:0": { + "id": "global.amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.3 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "us.openai.gpt-5.6-terra": { + "id": "us.openai.gpt-5.6-terra", + "name": "GPT-5.6 Terra (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 13.2, + "cache_read": 0.22, + "cache_write": 2.75, + "tiers": [ + { + "input": 4.4, + "output": 19.8, + "cache_read": 0.44, + "cache_write": 5.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "mistral.devstral-2-123b": { + "id": "mistral.devstral-2-123b", + "name": "Devstral 2 123B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 8192 + } + }, + "us.xai.grok-4.6": { + "id": "us.xai.grok-4.6", + "name": "Grok 4.6 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 6.6, + "cache_read": 0.55 + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": { + "id": "jp.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic.claude-fable-5": { + "id": "anthropic.claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic.claude-sonnet-4-5-20250929-v1:0": { + "id": "anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "jp.anthropic.claude-opus-4-8": { + "id": "jp.anthropic.claude-opus-4-8", + "name": "Claude Opus 4.8 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.openai.gpt-5.6-luna": { + "id": "us.openai.gpt-5.6-luna", + "name": "GPT-5.6 Luna (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 1.32, + "cache_read": 0.022, + "cache_write": 0.275, + "tiers": [ + { + "input": 0.44, + "output": 1.98, + "cache_read": 0.044, + "cache_write": 0.55, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { + "id": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "au.anthropic.claude-opus-5": { + "id": "au.anthropic.claude-opus-5", + "name": "Claude Opus 5 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "nvidia.nemotron-nano-12b-v2": { + "id": "nvidia.nemotron-nano-12b-v2", + "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "us.amazon.nova-2-lite-v1:0": { + "id": "us.amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.33, + "output": 2.75, + "cache_read": 0.0825, + "cache_write": 0.33 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "us.openai.gpt-6-astra": { + "id": "us.openai.gpt-6-astra", + "name": "GPT-6 Astra (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 11, + "output": 55, + "cache_read": 1.1, + "cache_write": 13.75, + "tiers": [ + { + "input": 22, + "output": 82.5, + "cache_read": 2.2, + "cache_write": 27.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai.gpt-5.6-terra": { + "id": "openai.gpt-5.6-terra", + "name": "GPT-5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 13.2, + "cache_read": 0.22, + "cache_write": 2.75, + "tiers": [ + { + "input": 4.4, + "output": 19.8, + "cache_read": 0.44, + "cache_write": 5.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "anthropic.claude-opus-4-6-v1": { + "id": "anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.anthropic.claude-opus-4-1-20250805-v1:0": { + "id": "us.anthropic.claude-opus-4-1-20250805-v1:0", + "name": "Claude Opus 4.1 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "us.meta.llama3-1-8b-instruct-v1:0": { + "id": "us.meta.llama3-1-8b-instruct-v1:0", + "name": "Llama 3.1 8B Instruct (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.22 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { + "id": "eu.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 5.5, + "cache_read": 0.11, + "cache_write": 1.375 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "global.anthropic.claude-opus-4-7": { + "id": "global.anthropic.claude-opus-4-7", + "name": "Claude Opus 4.7 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "apac.anthropic.claude-sonnet-4-20250514-v1:0": { + "id": "apac.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (APAC)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "deepseek.v3.2": { + "id": "deepseek.v3.2", + "name": "DeepSeek V3.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.62, + "output": 1.85 + }, + "limit": { + "context": 163840, + "output": 81920 + } + }, + "qwen.qwen3-235b-a22b-2507-v1:0": { + "id": "qwen.qwen3-235b-a22b-2507-v1:0", + "name": "Qwen3 235B-A22B Instruct 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.88 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "amazon.nova-lite-v1:0": { + "id": "amazon.nova-lite-v1:0", + "name": "Nova Lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015, + "cache_write": 0.06 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "global.anthropic.claude-opus-5": { + "id": "global.anthropic.claude-opus-5", + "name": "Claude Opus 5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai.gpt-oss-20b-1:0": { + "id": "openai.gpt-oss-20b-1:0", + "name": "gpt-oss-20b", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.3 + }, + "limit": { + "context": 131072, + "output": 128000 + } + }, + "anthropic.claude-opus-5": { + "id": "anthropic.claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "meta.llama3-3-70b-instruct-v1:0": { + "id": "meta.llama3-3-70b-instruct-v1:0", + "name": "Llama 3.3 70B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "minimax.minimax-m2": { + "id": "minimax.minimax-m2", + "name": "MiniMax-M2", + "reasoning": true, + "reasoning_options": [], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204608, + "output": 128000 + } + }, + "mistral.mistral-large-3-675b-instruct": { + "id": "mistral.mistral-large-3-675b-instruct", + "name": "Mistral Large 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 262144, + "output": 8192 + } + }, + "in.openai.gpt-5.6-luna": { + "id": "in.openai.gpt-5.6-luna", + "name": "GPT-5.6 Luna (India)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 1.32, + "cache_read": 0.022, + "cache_write": 0.275, + "tiers": [ + { + "input": 0.44, + "output": 1.98, + "cache_read": 0.044, + "cache_write": 0.55, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "eu.anthropic.claude-opus-4-8": { + "id": "eu.anthropic.claude-opus-4-8", + "name": "Claude Opus 4.8 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { + "id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "zai.glm-4.7": { + "id": "zai.glm-4.7", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "au.anthropic.claude-sonnet-4-5-20250929-v1:0": { + "id": "au.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "eu.anthropic.claude-opus-5-5": { + "id": "eu.anthropic.claude-opus-5-5", + "name": "Claude Opus 5.5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.4, + "output": 22, + "cache_read": 0.22, + "cache_write": 5.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-sonnet-4-6": { + "id": "global.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "jp.anthropic.claude-sonnet-4-6": { + "id": "jp.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "google.gemma-3-27b-it": { + "id": "google.gemma-3-27b-it", + "name": "Gemma 3 27B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.23, + "output": 0.38 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "eu.anthropic.claude-opus-4-6-v1": { + "id": "eu.anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.anthropic.claude-opus-5-5": { + "id": "us.anthropic.claude-opus-5-5", + "name": "Claude Opus 5.5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.4, + "output": 22, + "cache_read": 0.22, + "cache_write": 5.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.anthropic.claude-opus-5": { + "id": "us.anthropic.claude-opus-5", + "name": "Claude Opus 5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.xai.grok-4.7": { + "id": "global.xai.grok-4.7", + "name": "Grok 4.7 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5 + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "us.openai.gpt-5.6-sol": { + "id": "us.openai.gpt-5.6-sol", + "name": "GPT-5.6 Sol (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 4.4, + "output": 22, + "cache_read": 0.44, + "cache_write": 5.5, + "tiers": [ + { + "input": 8.8, + "output": 33, + "cache_read": 0.88, + "cache_write": 11, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "us.moonshotai.kimi-k3": { + "id": "us.moonshotai.kimi-k3", + "name": "Kimi K3 (US)", + "reasoning": true, + "reasoning_options": [], + "interleaved": true, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 1048576, + "output": 128000 + } + }, + "anthropic.claude-sonnet-5": { + "id": "anthropic.claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "mistral.magistral-small-2509": { + "id": "mistral.magistral-small-2509", + "name": "Magistral Small 1.2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 128000, + "output": 40000 + } + }, + "mistral.pixtral-large-2502-v1:0": { + "id": "mistral.pixtral-large-2502-v1:0", + "name": "Pixtral Large (25.02)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "anthropic.claude-opus-4-5-20251101-v1:0": { + "id": "anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "nvidia.nemotron-nano-9b-v2": { + "id": "nvidia.nemotron-nano-9b-v2", + "name": "NVIDIA Nemotron Nano 9B v2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.23 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "eu.amazon.nova-micro-v1:0": { + "id": "eu.amazon.nova-micro-v1:0", + "name": "Nova Micro (EU)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.16, + "cache_read": 0.01, + "cache_write": 0.04 + }, + "limit": { + "context": 128000, + "output": 10000 + } + }, + "zai.glm-5": { + "id": "zai.glm-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "us.meta.llama3-1-70b-instruct-v1:0": { + "id": "us.meta.llama3-1-70b-instruct-v1:0", + "name": "Llama 3.1 70B Instruct (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "jp.anthropic.claude-haiku-4-5-20251001-v1:0": { + "id": "jp.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 5.5, + "cache_read": 0.11, + "cache_write": 1.375 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "nvidia.nemotron-nano-3-30b": { + "id": "nvidia.nemotron-nano-3-30b", + "name": "NVIDIA Nemotron Nano 3 30B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.24 + }, + "limit": { + "context": 262144, + "output": 8192 + } + }, + "mistral.ministral-3-3b-instruct": { + "id": "mistral.ministral-3-3b-instruct", + "name": "Ministral 3 3B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 256000, + "output": 8192 + } + }, + "us.xai.grok-4.7": { + "id": "us.xai.grok-4.7", + "name": "Grok 4.7 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 6.6, + "cache_read": 0.55 + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "us.openai.gpt-6-luna": { + "id": "us.openai.gpt-6-luna", + "name": "GPT-6 Luna (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.11, + "output": 0.55, + "cache_read": 0.011, + "cache_write": 0.1375, + "tiers": [ + { + "input": 0.22, + "output": 0.825, + "cache_read": 0.022, + "cache_write": 0.275, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "global.openai.gpt-5.6-sol": { + "id": "global.openai.gpt-5.6-sol", + "name": "GPT-5.6 Sol (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "google.gemma-4-26b-a4b": { + "id": "google.gemma-4-26b-a4b", + "name": "Gemma 4 26B A4B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "xai.grok-4.6": { + "id": "xai.grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 6.6, + "cache_read": 0.55 + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "global.xai.grok-4.6": { + "id": "global.xai.grok-4.6", + "name": "Grok 4.6 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5 + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "au.anthropic.claude-opus-4-6-v1": { + "id": "au.anthropic.claude-opus-4-6-v1", + "name": "AU Anthropic Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "qwen.qwen3-vl-235b-a22b": { + "id": "qwen.qwen3-vl-235b-a22b", + "name": "Qwen3 VL 235B A22B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.53, + "output": 2.66 + }, + "limit": { + "context": 262144, + "output": 262000 + } + }, + "anthropic.claude-fable-5-1": { + "id": "anthropic.claude-fable-5-1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "jp.anthropic.claude-sonnet-5": { + "id": "jp.anthropic.claude-sonnet-5", + "name": "Claude Sonnet 5 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 11, + "cache_read": 0.22, + "cache_write": 2.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "qwen.qwen3-coder-next": { + "id": "qwen.qwen3-coder-next", + "name": "Qwen3 Coder Next", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.2 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "anthropic.claude-opus-4-8": { + "id": "anthropic.claude-opus-4-8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "au.anthropic.claude-sonnet-5": { + "id": "au.anthropic.claude-sonnet-5", + "name": "Claude Sonnet 5 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 11, + "cache_read": 0.22, + "cache_write": 2.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "meta.llama4-scout-17b-instruct-v1:0": { + "id": "meta.llama4-scout-17b-instruct-v1:0", + "name": "Llama 4 Scout 17B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.17, + "output": 0.66 + }, + "limit": { + "context": 10000000, + "output": 8192 + } + }, + "openai.gpt-oss-safeguard-120b": { + "id": "openai.gpt-oss-safeguard-120b", + "name": "GPT OSS Safeguard 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "us.meta.llama3-3-70b-instruct-v1:0": { + "id": "us.meta.llama3-3-70b-instruct-v1:0", + "name": "Llama 3.3 70B Instruct (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "global.openai.gpt-5.6-luna": { + "id": "global.openai.gpt-5.6-luna", + "name": "GPT-5.6 Luna (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "au.anthropic.claude-sonnet-4-6": { + "id": "au.anthropic.claude-sonnet-4-6", + "name": "AU Anthropic Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai.gpt-oss-120b": { + "id": "openai.gpt-oss-120b", + "name": "gpt-oss-120b", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/v1" + } + }, + "deepseek.v3-v1:0": { + "id": "deepseek.v3-v1:0", + "name": "DeepSeek-V3.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.58, + "output": 1.68 + }, + "limit": { + "context": 163840, + "output": 81920 + } + }, + "moonshotai.kimi-k2.5": { + "id": "moonshotai.kimi-k2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "eu.anthropic.claude-sonnet-4-6": { + "id": "eu.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us-gov.openai.gpt-oss-120b-1:0": { + "id": "us-gov.openai.gpt-oss-120b-1:0", + "name": "gpt-oss-120b (GovCloud)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.18, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "us.anthropic.claude-fable-5": { + "id": "us.anthropic.claude-fable-5", + "name": "Claude Fable 5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 11, + "output": 55, + "cache_read": 1.1, + "cache_write": 13.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai.gpt-6-sol": { + "id": "openai.gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 11, + "cache_read": 0.22, + "cache_write": 2.75, + "tiers": [ + { + "input": 4.4, + "output": 16.5, + "cache_read": 0.44, + "cache_write": 5.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "us.deepseek.r1-v1:0": { + "id": "us.deepseek.r1-v1:0", + "name": "DeepSeek-R1 (US)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.35, + "output": 5.4 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "eu.anthropic.claude-opus-5": { + "id": "eu.anthropic.claude-opus-5", + "name": "Claude Opus 5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "ca.amazon.nova-lite-v1:0": { + "id": "ca.amazon.nova-lite-v1:0", + "name": "Nova Lite (CA)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.064, + "output": 0.256, + "cache_read": 0.016, + "cache_write": 0.064 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "us.openai.gpt-6-sol": { + "id": "us.openai.gpt-6-sol", + "name": "GPT-6 Sol (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 11, + "cache_read": 0.22, + "cache_write": 2.75, + "tiers": [ + { + "input": 4.4, + "output": 16.5, + "cache_read": 0.44, + "cache_write": 5.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "au.anthropic.claude-opus-4-7": { + "id": "au.anthropic.claude-opus-4-7", + "name": "Claude Opus 4.7 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.meta.llama4-scout-17b-instruct-v1:0": { + "id": "us.meta.llama4-scout-17b-instruct-v1:0", + "name": "Llama 4 Scout 17B Instruct (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.17, + "output": 0.66 + }, + "limit": { + "context": 10000000, + "output": 8192 + } + }, + "global.anthropic.claude-sonnet-5": { + "id": "global.anthropic.claude-sonnet-5", + "name": "Claude Sonnet 5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-fable-5": { + "id": "global.anthropic.claude-fable-5", + "name": "Claude Fable 5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "apac.amazon.nova-lite-v1:0": { + "id": "apac.amazon.nova-lite-v1:0", + "name": "Nova Lite (APAC)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.063, + "output": 0.252, + "cache_read": 0.01575, + "cache_write": 0.063 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "us.anthropic.claude-opus-4-8": { + "id": "us.anthropic.claude-opus-4-8", + "name": "Claude Opus 4.8 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "nvidia.nemotron-super-3-120b": { + "id": "nvidia.nemotron-super-3-120b", + "name": "NVIDIA Nemotron 3 Super 120B A12B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.65 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "global.openai.gpt-6-luna": { + "id": "global.openai.gpt-6-luna", + "name": "GPT-6 Luna (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "us-gov.openai.gpt-oss-20b-1:0": { + "id": "us-gov.openai.gpt-oss-20b-1:0", + "name": "gpt-oss-20b (GovCloud)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.084, + "output": 0.36 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "us.anthropic.claude-opus-4-6-v1": { + "id": "us.anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "meta.llama3-1-8b-instruct-v1:0": { + "id": "meta.llama3-1-8b-instruct-v1:0", + "name": "Llama 3.1 8B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.22 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "writer.palmyra-x5-v1:0": { + "id": "writer.palmyra-x5-v1:0", + "name": "Palmyra X5", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 6 + }, + "limit": { + "context": 1040000, + "output": 8192 + } + }, + "anthropic.claude-opus-4-1-20250805-v1:0": { + "id": "anthropic.claude-opus-4-1-20250805-v1:0", + "name": "Claude Opus 4.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "us.anthropic.claude-sonnet-4-6": { + "id": "us.anthropic.claude-sonnet-4-6", + "name": "Claude Sonnet 4.6 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-opus-4-6-v1": { + "id": "global.anthropic.claude-opus-4-6-v1", + "name": "Claude Opus 4.6 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { + "id": "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "jp.anthropic.claude-opus-4-7": { + "id": "jp.anthropic.claude-opus-4-7", + "name": "Claude Opus 4.7 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "au.anthropic.claude-opus-5-5": { + "id": "au.anthropic.claude-opus-5-5", + "name": "Claude Opus 5.5 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.4, + "output": 22, + "cache_read": 0.22, + "cache_write": 5.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai.gpt-6-luna": { + "id": "openai.gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.11, + "output": 0.55, + "cache_read": 0.011, + "cache_write": 0.1375, + "tiers": [ + { + "input": 0.22, + "output": 0.825, + "cache_read": 0.022, + "cache_write": 0.275, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "writer.palmyra-x4-v1:0": { + "id": "writer.palmyra-x4-v1:0", + "name": "Palmyra X4", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 122880, + "output": 8192 + } + }, + "global.anthropic.claude-opus-4-5-20251101-v1:0": { + "id": "global.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic.claude-opus-4-7": { + "id": "anthropic.claude-opus-4-7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.anthropic.claude-sonnet-4-20250514-v1:0": { + "id": "us.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic.claude-haiku-4-5-20251001-v1:0": { + "id": "anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "eu.anthropic.claude-sonnet-5": { + "id": "eu.anthropic.claude-sonnet-5", + "name": "Claude Sonnet 5 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 11, + "cache_read": 0.22, + "cache_write": 2.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "zai.glm-4.7-flash": { + "id": "zai.glm-4.7-flash", + "name": "GLM-4.7-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.4 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "moonshot.kimi-k2-thinking": { + "id": "moonshot.kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "reasoning": true, + "reasoning_options": [], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 262144, + "output": 16000 + } + }, + "eu.amazon.nova-pro-v1:0": { + "id": "eu.amazon.nova-pro-v1:0", + "name": "Nova Pro (EU)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.92, + "output": 3.68, + "cache_read": 0.23, + "cache_write": 0.92 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "global.openai.gpt-5.6-terra": { + "id": "global.openai.gpt-5.6-terra", + "name": "GPT-5.6 Terra (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai.gpt-6-astra": { + "id": "openai.gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 11, + "output": 55, + "cache_read": 1.1, + "cache_write": 13.75, + "tiers": [ + { + "input": 22, + "output": 82.5, + "cache_read": 2.2, + "cache_write": 27.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "us.anthropic.claude-haiku-4-5-20251001-v1:0": { + "id": "us.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 5.5, + "cache_read": 0.11, + "cache_write": 1.375 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "meta.llama4-maverick-17b-instruct-v1:0": { + "id": "meta.llama4-maverick-17b-instruct-v1:0", + "name": "Llama 4 Maverick 17B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.24, + "output": 0.97 + }, + "limit": { + "context": 1000000, + "output": 8192 + } + }, + "qwen.qwen3-next-80b-a3b": { + "id": "qwen.qwen3-next-80b-a3b", + "name": "Qwen3-Next 80B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1.2 + }, + "limit": { + "context": 262144, + "output": 262000 + } + }, + "eu.mistral.pixtral-large-2502-v1:0": { + "id": "eu.mistral.pixtral-large-2502-v1:0", + "name": "Pixtral Large (25.02) (EU)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "au.anthropic.claude-opus-4-8": { + "id": "au.anthropic.claude-opus-4-8", + "name": "Claude Opus 4.8 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "us.anthropic.claude-fable-5-1": { + "id": "us.anthropic.claude-fable-5-1", + "name": "Claude Fable 5.1 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 11, + "output": 55, + "cache_read": 0.275, + "cache_write": 13.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.moonshotai.kimi-k3": { + "id": "global.moonshotai.kimi-k3", + "name": "Kimi K3 (Global)", + "reasoning": true, + "reasoning_options": [], + "interleaved": true, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1048576, + "output": 128000 + } + }, + "in.openai.gpt-5.6-terra": { + "id": "in.openai.gpt-5.6-terra", + "name": "GPT-5.6 Terra (India)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.2, + "output": 13.2, + "cache_read": 0.22, + "cache_write": 2.75, + "tiers": [ + { + "input": 4.4, + "output": 19.8, + "cache_read": 0.44, + "cache_write": 5.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai.gpt-oss-20b": { + "id": "openai.gpt-oss-20b", + "name": "gpt-oss-20b", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.3 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/v1" + } + }, + "mistral.ministral-3-14b-instruct": { + "id": "mistral.ministral-3-14b-instruct", + "name": "Ministral 14B 3.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.2 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "au.anthropic.claude-haiku-4-5-20251001-v1:0": { + "id": "au.anthropic.claude-haiku-4-5-20251001-v1:0", + "name": "Claude Haiku 4.5 (AU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 5.5, + "cache_read": 0.11, + "cache_write": 1.375 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "openai.gpt-5.6-sol": { + "id": "openai.gpt-5.6-sol", + "name": "GPT-5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.4, + "output": 22, + "cache_read": 0.44, + "cache_write": 5.5, + "tiers": [ + { + "input": 8.8, + "output": 33, + "cache_read": 0.88, + "cache_write": 11, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "minimax.minimax-m2.1": { + "id": "minimax.minimax-m2.1", + "name": "MiniMax-M2.1", + "reasoning": true, + "reasoning_options": [], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 196608, + "output": 131072 + } + }, + "us.anthropic.claude-opus-4-5-20251101-v1:0": { + "id": "us.anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5 (US)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "eu.anthropic.claude-opus-4-7": { + "id": "eu.anthropic.claude-opus-4-7", + "name": "Claude Opus 4.7 (EU)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "jp.amazon.nova-2-lite-v1:0": { + "id": "jp.amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.396, + "output": 3.311, + "cache_read": 0.099, + "cache_write": 0.396 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "us.mistral.pixtral-large-2502-v1:0": { + "id": "us.mistral.pixtral-large-2502-v1:0", + "name": "Pixtral Large (25.02) (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "jp.anthropic.claude-opus-5": { + "id": "jp.anthropic.claude-opus-5", + "name": "Claude Opus 5 (JP)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5.5, + "output": 27.5, + "cache_read": 0.55, + "cache_write": 6.875 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "global.anthropic.claude-sonnet-4-20250514-v1:0": { + "id": "global.anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "global.anthropic.claude-opus-4-8": { + "id": "global.anthropic.claude-opus-4-8", + "name": "Claude Opus 4.8 (Global)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai.gpt-5.4": { + "id": "openai.gpt-5.4", + "name": "GPT-5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.75, + "output": 16.5, + "cache_read": 0.275 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/amazon-bedrock/mantle", + "api": "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1" + } + }, + "mistral.voxtral-mini-3b-2507": { + "id": "mistral.voxtral-mini-3b-2507", + "name": "Voxtral Mini 3B 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 32768, + "output": 4096 + } + }, + "openai.gpt-oss-120b-1:0": { + "id": "openai.gpt-oss-120b-1:0", + "name": "gpt-oss-120b", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 131072, + "output": 128000 + } + }, + "amazon.nova-2-lite-v1:0": { + "id": "amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.33, + "output": 2.75, + "cache_read": 0.0825, + "cache_write": 0.33 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "us.amazon.nova-micro-v1:0": { + "id": "us.amazon.nova-micro-v1:0", + "name": "Nova Micro (US)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875, + "cache_write": 0.035 + }, + "limit": { + "context": 128000, + "output": 10000 + } + }, + "mistral.ministral-3-8b-instruct": { + "id": "mistral.ministral-3-8b-instruct", + "name": "Ministral 3 8B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 4096 + } + } + } + }, + "anthropic": { + "id": "anthropic", + "name": "Anthropic", + "env": ["ANTHROPIC_API_KEY"], + "npm": "@ai-sdk/anthropic", + "models": { + "claude-haiku-4-5": { + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "claude-opus-4-5": { + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "claude-sonnet-4-5": { + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "claude-opus-5-5": { + "id": "claude-opus-5-5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-fable-5-1": { + "id": "claude-fable-5-1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-opus-4-5-20251101": { + "id": "claude-opus-4-5-20251101", + "name": "Claude Opus 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "claude-opus-5": { + "id": "claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-fable-5": { + "id": "claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-opus-4-8": { + "id": "claude-opus-4-8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-sonnet-4-5-20250929": { + "id": "claude-sonnet-4-5-20250929", + "name": "Claude Sonnet 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "claude-sonnet-5": { + "id": "claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-opus-4-6": { + "id": "claude-opus-4-6", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-haiku-4-5-20251001": { + "id": "claude-haiku-4-5-20251001", + "name": "Claude Haiku 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "claude-sonnet-4-6": { + "id": "claude-sonnet-4-6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-sonnet-5-5": { + "id": "claude-sonnet-5-5", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-opus-4-7": { + "id": "claude-opus-4-7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + } + } + }, + "azure": { + "id": "azure", + "name": "Azure", + "env": ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], + "npm": "@ai-sdk/azure", + "models": { + "grok-4-1-fast-reasoning": { + "id": "grok-4-1-fast-reasoning", + "name": "Grok 4.1 Fast (Reasoning)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "gpt-5.4": { + "id": "gpt-5.4", + "name": "GPT-5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "deepseek-v3.2-speciale": { + "id": "deepseek-v3.2-speciale", + "name": "DeepSeek-V3.2-Speciale", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.58, + "output": 1.68 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "claude-haiku-4-5": { + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "gpt-5.4-pro": { + "id": "gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "grok-4-1-fast-non-reasoning": { + "id": "grok-4-1-fast-non-reasoning", + "name": "Grok 4.1 Fast (Non-Reasoning)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "phi-4-reasoning": { + "id": "phi-4-reasoning", + "name": "Phi-4-reasoning", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.125, + "output": 0.5 + }, + "limit": { + "context": 32000, + "output": 4096 + } + }, + "text-embedding-3-small": { + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.02, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "gpt-5.4-nano": { + "id": "gpt-5.4-nano", + "name": "GPT-5.4 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.2-codex": { + "id": "gpt-5.2-codex", + "name": "GPT-5.2 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.1-codex": { + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text", "image", "audio"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-4o": { + "id": "gpt-4o", + "name": "GPT-4o", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "ministral-3b": { + "id": "ministral-3b", + "name": "Ministral 3B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "gpt-chat-latest": { + "id": "gpt-chat-latest", + "name": "GPT Chat Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5-codex": { + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5-mini": { + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-image-2": { + "id": "gpt-image-2", + "name": "GPT-Image-2", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "o4-mini": { + "id": "o4-mini", + "name": "o4-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + "id": "llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama 4 Maverick 17B 128E Instruct FP8", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1 + }, + "limit": { + "context": 1000000, + "output": 16384 + } + }, + "o3-mini": { + "id": "o3-mini", + "name": "o3-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "claude-opus-4-5": { + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "text-embedding-ada-002": { + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "gpt-5.3-codex": { + "id": "gpt-5.3-codex", + "name": "GPT-5.3 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-4.1-nano": { + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "gpt-5-nano": { + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "phi-4-multimodal": { + "id": "phi-4-multimodal", + "name": "Phi-4-multimodal", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.08, + "output": 0.32 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models" + } + }, + "claude-sonnet-4-5": { + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "claude-opus-5-5": { + "id": "claude-opus-5-5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "gpt-image-2.5-flare": { + "id": "gpt-image-2.5-flare", + "name": "GPT Image 2.5 Flare", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "claude-fable-5-1": { + "id": "claude-fable-5-1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "mistral-medium-2505": { + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "cohere-embed-v3-multilingual": { + "id": "cohere-embed-v3-multilingual", + "name": "Embed v3 Multilingual", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 512, + "output": 1024 + } + }, + "o1": { + "id": "o1", + "name": "o1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "codex-mini": { + "id": "codex-mini", + "name": "Codex Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 6, + "cache_read": 0.375 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "phi-4-reasoning-plus": { + "id": "phi-4-reasoning-plus", + "name": "Phi-4-reasoning-plus", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.125, + "output": 0.5 + }, + "limit": { + "context": 32000, + "output": 4096 + } + }, + "claude-mythos-5": { + "id": "claude-mythos-5", + "name": "Claude Mythos 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "gpt-5-pro": { + "id": "gpt-5-pro", + "name": "GPT-5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 120 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-3.5-turbo-instruct": { + "id": "gpt-3.5-turbo-instruct", + "name": "GPT-3.5 Turbo Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 2 + }, + "limit": { + "context": 4096, + "output": 4096 + } + }, + "gpt-3.5-turbo-0125": { + "id": "gpt-3.5-turbo-0125", + "name": "GPT-3.5 Turbo 0125", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 16384, + "output": 4096 + } + }, + "gpt-6.1-sol": { + "id": "gpt-6.1-sol", + "name": "GPT-6.1 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "text-embedding-3-large": { + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 3072 + } + }, + "claude-opus-4-1": { + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "cohere-embed-v-4-0": { + "id": "cohere-embed-v-4-0", + "name": "Embed v4", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.12, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 1536 + } + }, + "gpt-6-astra": { + "id": "gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "codestral-2501": { + "id": "codestral-2501", + "name": "Codestral 25.01", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "kimi-k2.5": { + "id": "kimi-k2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models" + } + }, + "gpt-5.1": { + "id": "gpt-5.1", + "name": "GPT-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text", "image", "audio"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "claude-opus-5": { + "id": "claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "llama-3.3-70b-instruct": { + "id": "llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.71, + "output": 0.71 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "gpt-4o-mini": { + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "cohere-command-a": { + "id": "cohere-command-a", + "name": "Command A", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "cohere-embed-v3-english": { + "id": "cohere-embed-v3-english", + "name": "Embed v3 English", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 512, + "output": 1024 + } + }, + "model-router": { + "id": "model-router", + "name": "Model Router", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0 + }, + "limit": { + "context": 200000, + "output": 16384 + } + }, + "gpt-image-2.5-sunburst": { + "id": "gpt-image-2.5-sunburst", + "name": "GPT Image 2.5 Sunburst", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "claude-fable-5": { + "id": "claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "gpt-image-1": { + "id": "gpt-image-1", + "name": "GPT-Image-1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 40, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "gpt-5.4-mini": { + "id": "gpt-5.4-mini", + "name": "GPT-5.4 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.6-luna": { + "id": "gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.1-codex-max": { + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.2": { + "id": "gpt-5.2", + "name": "GPT-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "claude-opus-4-8": { + "id": "claude-opus-4-8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "phi-4": { + "id": "phi-4", + "name": "Phi-4", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.125, + "output": 0.5 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "gpt-5.5": { + "id": "gpt-5.5", + "name": "GPT-5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "mistral-small-2503": { + "id": "mistral-small-2503", + "name": "Mistral Small 3.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "phi-4-mini-reasoning": { + "id": "phi-4-mini-reasoning", + "name": "Phi-4-mini-reasoning", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "gpt-4.1": { + "id": "gpt-4.1", + "name": "GPT-4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "claude-sonnet-5": { + "id": "claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "claude-opus-4-6": { + "id": "claude-opus-4-6", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "gpt-4-turbo-vision": { + "id": "gpt-4-turbo-vision", + "name": "GPT-4 Turbo Vision", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 30 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "grok-4-20-non-reasoning": { + "id": "grok-4-20-non-reasoning", + "name": "Grok 4.20 (Non-Reasoning)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 262000, + "output": 8192 + } + }, + "gpt-3.5-turbo-1106": { + "id": "gpt-3.5-turbo-1106", + "name": "GPT-3.5 Turbo 1106", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2 + }, + "limit": { + "context": 16384, + "output": 4096 + } + }, + "gpt-4.1-mini": { + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "gpt-6-luna": { + "id": "gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "deepseek-r1": { + "id": "deepseek-r1", + "name": "DeepSeek-R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.35, + "output": 5.4 + }, + "limit": { + "context": 163840, + "output": 163840 + } + }, + "deepseek-v4-pro": { + "id": "deepseek-v4-pro", + "name": "DeepSeek-V4-Pro", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.74, + "output": 3.48 + }, + "limit": { + "context": 1000000, + "output": 384000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models" + } + }, + "claude-sonnet-4-6": { + "id": "claude-sonnet-4-6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "llama-4-scout-17b-16e-instruct": { + "id": "llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.78 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "claude-sonnet-5-5": { + "id": "claude-sonnet-5-5", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "gpt-image-1.5": { + "id": "gpt-image-1.5", + "name": "GPT-Image-1.5", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 5, + "output": 32, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "grok-4-20-reasoning": { + "id": "grok-4-20-reasoning", + "name": "Grok 4.20 (Reasoning)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 262000, + "output": 8192 + } + }, + "gpt-5.6-terra": { + "id": "gpt-5.6-terra", + "name": "GPT-5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "deepseek-v3.2": { + "id": "deepseek-v3.2", + "name": "DeepSeek-V3.2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.58, + "output": 1.68 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "gpt-4-turbo": { + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 30 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "gpt-5.1-codex-mini": { + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "o3": { + "id": "o3", + "name": "o3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "claude-opus-4-7": { + "id": "claude-opus-4-7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + } + }, + "kimi-k2.7-code": { + "id": "kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models" + } + }, + "gpt-5": { + "id": "gpt-5", + "name": "GPT-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "grok-4.6": { + "id": "grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "limit": { + "context": 200000, + "output": 128000 + } + }, + "gpt-5.6-sol": { + "id": "gpt-5.6-sol", + "name": "GPT-5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "phi-4-mini": { + "id": "phi-4-mini", + "name": "Phi-4-mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "deepseek-v4-flash": { + "id": "deepseek-v4-flash", + "name": "DeepSeek-V4-Flash", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.19, + "output": 0.51 + }, + "limit": { + "context": 1000000, + "output": 384000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models" + } + }, + "gpt-6-sol": { + "id": "gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + } + } + }, + "baseten": { + "id": "baseten", + "name": "Baseten", + "env": ["BASETEN_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://inference.baseten.co/v1", + "models": { + "thinkingmachines/inkling-small": { + "id": "thinkingmachines/inkling-small", + "name": "Inkling Small", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.2, + "cache_read": 0.1 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "thinkingmachines/inkling": { + "id": "thinkingmachines/inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 4.05 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "deepseek-ai/DeepSeek-V3.1": { + "id": "deepseek-ai/DeepSeek-V3.1", + "name": "DeepSeek V3.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 164000, + "output": 131000 + } + }, + "deepseek-ai/DeepSeek-V4-Flash-0731": { + "id": "deepseek-ai/DeepSeek-V4-Flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.26, + "cache_read": 0.028 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4-Pro-0813": { + "id": "deepseek-ai/DeepSeek-V4-Pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.32, + "output": 3.96 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "deepseek-ai/DeepSeek-V4.1-Flash": { + "id": "deepseek-ai/DeepSeek-V4.1-Flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "deepseek-ai/DeepSeek-V4.1-Flash-Fast": { + "id": "deepseek-ai/DeepSeek-V4.1-Flash-Fast", + "name": "deepseek-ai/DeepSeek-V4.1-Flash-Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "deepseek-ai/DeepSeek-V4-Pro": { + "id": "deepseek-ai/DeepSeek-V4-Pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.74, + "output": 3.48, + "cache_read": 0.145 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "MiniMaxAI/MiniMax-M2.5": { + "id": "MiniMaxAI/MiniMax-M2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204000, + "output": 204000 + } + }, + "moonshotai/Kimi-K2.6": { + "id": "moonshotai/Kimi-K2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + "moonshotai/Kimi-K3": { + "id": "moonshotai/Kimi-K3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "moonshotai/Kimi-K2.7-Code": { + "id": "moonshotai/Kimi-K2.7-Code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + "moonshotai/Kimi-K2.5": { + "id": "moonshotai/Kimi-K2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3, + "cache_read": 0.12 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + "zai-org/GLM-5.1": { + "id": "zai-org/GLM-5.1", + "name": "GLM 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.3, + "output": 4.3, + "cache_read": 0.26 + }, + "limit": { + "context": 202800, + "output": 202800 + } + }, + "zai-org/GLM-5.2": { + "id": "zai-org/GLM-5.2", + "name": "GLM 5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "zai-org/GLM-4.7": { + "id": "zai-org/GLM-4.7", + "name": "GLM 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.12 + }, + "limit": { + "context": 200000, + "output": 200000 + } + }, + "zai-org/GLM-5.2-Fast": { + "id": "zai-org/GLM-5.2-Fast", + "name": "GLM 5.2 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.1, + "output": 6.6, + "cache_read": 0.21 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "zai-org/GLM-5.3-Fast": { + "id": "zai-org/GLM-5.3-Fast", + "name": "GLM 5.3 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.1, + "output": 6.6 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "zai-org/GLM-5": { + "id": "zai-org/GLM-5", + "name": "GLM 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 3.15, + "cache_read": 0.2 + }, + "limit": { + "context": 202800, + "output": 202800 + } + }, + "zai-org/GLM-5.3-Flash": { + "id": "zai-org/GLM-5.3-Flash", + "name": "GLM 5.3 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "zai-org/GLM-5.3": { + "id": "zai-org/GLM-5.3", + "name": "GLM 5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.14 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "nvidia/Nemotron-120B-A12B": { + "id": "nvidia/Nemotron-120B-A12B", + "name": "Nemotron Super", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.75, + "cache_read": 0.06 + }, + "limit": { + "context": 202800, + "output": 202800 + } + }, + "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B": { + "id": "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B", + "name": "Nemotron Ultra", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12 + }, + "limit": { + "context": 202800, + "output": 202800 + } + }, + "openai/gpt-oss-120b": { + "id": "openai/gpt-oss-120b", + "name": "OpenAI GPT 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5 + }, + "limit": { + "context": 128072, + "output": 128072 + } + } + } + }, + "cerebras": { + "id": "cerebras", + "name": "Cerebras", + "env": ["CEREBRAS_API_KEY"], + "npm": "@ai-sdk/cerebras", + "models": { + "qwen-3.8-27b": { + "id": "qwen-3.8-27b", + "name": "Qwen3.8 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.99, + "output": 1.49, + "cache_read": 0.99 + }, + "limit": { + "context": 131072, + "output": 40960 + } + }, + "gpt-oss-120b": { + "id": "gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 0.75 + }, + "limit": { + "context": 131072, + "output": 40960 + } + } + } + }, + "cloudflare-ai-gateway": { + "id": "cloudflare-ai-gateway", + "name": "Cloudflare AI Gateway", + "env": [ + "CLOUDFLARE_API_TOKEN", + "CLOUDFLARE_ACCOUNT_ID", + "CLOUDFLARE_GATEWAY_ID" + ], + "npm": "ai-gateway-provider", + "models": { + "anthropic/claude-opus-4.5": { + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-opus-4.6": { + "id": "anthropic/claude-opus-4.6", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-opus-4.7": { + "id": "anthropic/claude-opus-4.7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-opus-4.8": { + "id": "anthropic/claude-opus-4.8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-haiku-4.5": { + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-opus-5": { + "id": "anthropic/claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-fable-5.1": { + "id": "anthropic/claude-fable-5.1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-sonnet-4.5": { + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-fable-5": { + "id": "anthropic/claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-sonnet-5": { + "id": "anthropic/claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-sonnet-4.6": { + "id": "anthropic/claude-sonnet-4.6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "anthropic/claude-opus-5.5": { + "id": "anthropic/claude-opus-5.5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "deepseek/deepseek-v4-pro": { + "id": "deepseek/deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.74, + "output": 3.48, + "cache_read": 0.145 + }, + "limit": { + "context": 131072, + "output": 384000 + } + }, + "unbiased/pareto": { + "id": "unbiased/pareto", + "name": "Pareto", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "alibaba/qwen3.7-max": { + "id": "alibaba/qwen3.7-max", + "name": "Qwen3.7 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 3.75, + "cache_read": 0.25 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "alibaba/qwen3.8-max": { + "id": "alibaba/qwen3.8-max", + "name": "Qwen3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "alibaba/qwen3-max": { + "id": "alibaba/qwen3-max", + "name": "Qwen3 Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 6 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "alibaba/qwen3.5-397b-a17b": { + "id": "alibaba/qwen3.5-397b-a17b", + "name": "Qwen3.5 397B-A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "alibaba/qwen3.7-plus": { + "id": "alibaba/qwen3.7-plus", + "name": "Qwen3.7 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.32, + "output": 1.28, + "cache_read": 0.064 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "xai/grok-4.7": { + "id": "xai/grok-4.7", + "name": "Grok 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "xai/grok-4.3": { + "id": "xai/grok-4.3", + "name": "Grok 4.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2 + }, + "limit": { + "context": 1000000, + "output": 30000 + } + }, + "xai/grok-4.20-0309-reasoning": { + "id": "xai/grok-4.20-0309-reasoning", + "name": "Grok 4.20 (Reasoning)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2 + }, + "limit": { + "context": 2000000, + "output": 30000 + } + }, + "xai/grok-4.5": { + "id": "xai/grok-4.5", + "name": "Grok 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.3, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "xai/grok-4.20-0309-non-reasoning": { + "id": "xai/grok-4.20-0309-non-reasoning", + "name": "Grok 4.20 (Non-Reasoning)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2 + }, + "limit": { + "context": 2000000, + "output": 30000 + } + }, + "xai/grok-4.6": { + "id": "xai/grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "moonshotai/kimi-k3": { + "id": "moonshotai/kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "openai/gpt-5.4": { + "id": "openai/gpt-5.4", + "name": "GPT-5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.4-pro": { + "id": "openai/gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.5-pro": { + "id": "openai/gpt-5.5-pro", + "name": "GPT-5.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.4-nano": { + "id": "openai/gpt-5.4-nano", + "name": "GPT-5.4 nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-4o": { + "id": "openai/gpt-4o", + "name": "GPT-4o", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 5, + "cache_read": 0.625 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5-mini": { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/o4-mini": { + "id": "openai/o4-mini", + "name": "o4-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/o3-mini": { + "id": "openai/o3-mini", + "name": "o3-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-4.1-nano": { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1 nano", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1000000, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5-nano": { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-6-astra": { + "id": "openai/gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.1": { + "id": "openai/gpt-5.1", + "name": "GPT-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-4o-mini": { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3, + "cache_read": 0.0375 + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.4-mini": { + "id": "openai/gpt-5.4-mini", + "name": "GPT-5.4 mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.6-luna": { + "id": "openai/gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25 + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.5": { + "id": "openai/gpt-5.5", + "name": "GPT-5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-4.1": { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-4.1-mini": { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-6-luna": { + "id": "openai/gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.6-terra": { + "id": "openai/gpt-5.6-terra", + "name": "GPT-5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/o3": { + "id": "openai/o3", + "name": "o3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5": { + "id": "openai/gpt-5", + "name": "GPT-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-5.6-sol": { + "id": "openai/gpt-5.6-sol", + "name": "GPT-5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.25, + "cache_write": 3.125 + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "openai/gpt-6-sol": { + "id": "openai/gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + } + } + }, + "cloudflare-workers-ai": { + "id": "cloudflare-workers-ai", + "name": "Cloudflare Workers AI", + "env": ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", + "models": { + "@cf/meta/llama-3.3-70b-instruct-fp8-fast": { + "id": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", + "name": "Llama 3.3 70B Instruct fp8 Fast", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.293, + "output": 2.253 + }, + "limit": { + "context": 24000, + "output": 24000 + } + }, + "@cf/meta/llama-guard-3-8b": { + "id": "@cf/meta/llama-guard-3-8b", + "name": "Llama Guard 3 8B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.484, + "output": 0.03 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "@cf/meta/llama-3.1-8b-instruct-fp8": { + "id": "@cf/meta/llama-3.1-8b-instruct-fp8", + "name": "Llama 3.1 8B Instruct fp8", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.152, + "output": 0.287 + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "@cf/meta/llama-3.2-11b-vision-instruct": { + "id": "@cf/meta/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11B Vision Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.0485, + "output": 0.676 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "@cf/meta/llama-3.2-1b-instruct": { + "id": "@cf/meta/llama-3.2-1b-instruct", + "name": "Llama 3.2 1B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.027, + "output": 0.201 + }, + "limit": { + "context": 60000, + "output": 60000 + } + }, + "@cf/meta/llama-4-scout-17b-16e-instruct": { + "id": "@cf/meta/llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 0.85 + }, + "limit": { + "context": 131000, + "output": 16384 + } + }, + "@cf/meta/llama-3.2-3b-instruct": { + "id": "@cf/meta/llama-3.2-3b-instruct", + "name": "Llama 3.2 3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0509, + "output": 0.335 + }, + "limit": { + "context": 80000, + "output": 80000 + } + }, + "@cf/google/gemma-4-26b-a4b-it": { + "id": "@cf/google/gemma-4-26b-a4b-it", + "name": "Gemma 4 26B A4B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 256000, + "output": 16384 + } + }, + "@cf/aisingapore/gemma-sea-lion-v4-27b-it": { + "id": "@cf/aisingapore/gemma-sea-lion-v4-27b-it", + "name": "Gemma Sea Lion V4 27B It", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.351, + "output": 0.555 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "@cf/ibm-granite/granite-4.0-h-micro": { + "id": "@cf/ibm-granite/granite-4.0-h-micro", + "name": "Granite 4.0 H Micro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.017, + "output": 0.112 + }, + "limit": { + "context": 131000, + "output": 131000 + } + }, + "@cf/deepseek-ai/deepseek-v4-flash-0731": { + "id": "@cf/deepseek-ai/deepseek-v4-flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.44, + "output": 1.32, + "cache_read": 0.014 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "@cf/deepseek-ai/deepseek-v4-pro-0813": { + "id": "@cf/deepseek-ai/deepseek-v4-pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.32, + "output": 3.96, + "cache_read": 0.044 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { + "id": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + "name": "Deepseek R1 Distill Qwen 32B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.497, + "output": 4.881 + }, + "limit": { + "context": 80000, + "output": 80000 + } + }, + "@cf/mistralai/mistral-small-3.1-24b-instruct": { + "id": "@cf/mistralai/mistral-small-3.1-24b-instruct", + "name": "Mistral Small 3.1 24B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.351, + "output": 0.555 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "@cf/moonshotai/kimi-k2.6": { + "id": "@cf/moonshotai/kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "@cf/moonshotai/kimi-k2.7-code": { + "id": "@cf/moonshotai/kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "@cf/zai-org/glm-5.3-flash": { + "id": "@cf/zai-org/glm-5.3-flash", + "name": "Glm 5.3 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "@cf/zai-org/glm-4.7-flash": { + "id": "@cf/zai-org/glm-4.7-flash", + "name": "GLM-4.7-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0605, + "output": 0.4 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "@cf/zai-org/glm-5.2": { + "id": "@cf/zai-org/glm-5.2", + "name": "Glm 5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "@cf/zai-org/glm-5.3": { + "id": "@cf/zai-org/glm-5.3", + "name": "Glm 5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "@cf/nvidia/nemotron-3-120b-a12b": { + "id": "@cf/nvidia/nemotron-3-120b-a12b", + "name": "Nemotron 3 Super 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "@cf/qwen/qwen3.8-27b": { + "id": "@cf/qwen/qwen3.8-27b", + "name": "Qwen3.8 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 3.2, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "@cf/qwen/qwq-32b": { + "id": "@cf/qwen/qwq-32b", + "name": "Qwq 32B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1 + }, + "limit": { + "context": 24000, + "output": 24000 + } + }, + "@cf/qwen/qwen3-30b-a3b-fp8": { + "id": "@cf/qwen/qwen3-30b-a3b-fp8", + "name": "Qwen3 30B A3b fp8", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0509, + "output": 0.335 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "@cf/qwen/qwen2.5-coder-32b-instruct": { + "id": "@cf/qwen/qwen2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "@cf/openai/gpt-oss-20b": { + "id": "@cf/openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "@cf/openai/gpt-oss-120b": { + "id": "@cf/openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 0.75 + }, + "limit": { + "context": 128000, + "output": 16384 + } + } + } + }, + "deepinfra": { + "id": "deepinfra", + "name": "Deep Infra", + "env": ["DEEPINFRA_API_KEY"], + "npm": "@ai-sdk/deepinfra", + "models": { + "deepseek-ai/DeepSeek-V4-Flash-0731": { + "id": "deepseek-ai/DeepSeek-V4-Flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.18, + "cache_read": 0.015 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4-Pro-0813": { + "id": "deepseek-ai/DeepSeek-V4-Pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.3, + "output": 2.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4.1-Flash": { + "id": "deepseek-ai/DeepSeek-V4.1-Flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.6, + "cache_read": 0.006 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V3.2": { + "id": "deepseek-ai/DeepSeek-V3.2", + "name": "DeepSeek-V3.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.26, + "output": 0.38, + "cache_read": 0.13 + }, + "limit": { + "context": 163840, + "output": 64000 + } + }, + "moonshotai/Kimi-K2.5": { + "id": "moonshotai/Kimi-K2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 2.25, + "cache_read": 0.07 + }, + "limit": { + "context": 262144, + "output": 32768 + } + } + } + }, + "deepseek": { + "id": "deepseek", + "name": "DeepSeek", + "env": ["DEEPSEEK_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.deepseek.com", + "models": { + "deepseek-v4-flash-vision-exp": { + "id": "deepseek-v4-flash-vision-exp", + "name": "DeepSeek V4 Flash Vision Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.003 + }, + "limit": { + "context": 1000000, + "output": 393216 + } + }, + "deepseek-flash": { + "id": "deepseek-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.003 + }, + "limit": { + "context": 1000000, + "output": 393216 + } + }, + "deepseek-v4-pro": { + "id": "deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.003625 + }, + "limit": { + "context": 1000000, + "output": 393216 + } + }, + "deepseek-v4-flash": { + "id": "deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.003 + }, + "limit": { + "context": 1000000, + "output": 393216 + } + } + } + }, + "empiriolabs": { + "id": "empiriolabs", + "name": "EmpirioLabs AI", + "env": ["EMPIRIOLABS_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.empiriolabs.ai/v1", + "models": { + "muse-glimmer-30b": { + "id": "muse-glimmer-30b", + "name": "Muse Glimmer 30B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.8, + "cache_read": 0.05 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + } + }, + "fireworks-ai": { + "id": "fireworks-ai", + "name": "Fireworks AI", + "env": ["FIREWORKS_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.fireworks.ai/inference/v1/", + "models": { + "accounts/fireworks/models/nemotron-3-ultra-nvfp4": { + "id": "accounts/fireworks/models/nemotron-3-ultra-nvfp4", + "name": "Nemotron 3 Ultra 550B A55B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12 + }, + "limit": { + "context": 262144, + "output": 128000 + } + }, + "accounts/fireworks/models/kimi-k3": { + "id": "accounts/fireworks/models/kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "accounts/fireworks/models/qwen3p8-2p4t-a95b": { + "id": "accounts/fireworks/models/qwen3p8-2p4t-a95b", + "name": "Qwen3.8 2.4T A95B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "accounts/fireworks/models/ember-1": { + "id": "accounts/fireworks/models/ember-1", + "name": "Ember-1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "accounts/fireworks/models/deepseek-v4p1-flash": { + "id": "accounts/fireworks/models/deepseek-v4p1-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.66, + "cache_read": 0.007 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "accounts/fireworks/models/glm-5p3": { + "id": "accounts/fireworks/models/glm-5p3", + "name": "GLM 5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1048573, + "output": 262144 + } + }, + "accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b": { + "id": "accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b", + "name": "Nemotron 3.5 Lightning 30B A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2, + "cache_read": 0.01 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "accounts/fireworks/models/inkling": { + "id": "accounts/fireworks/models/inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 4.05, + "cache_read": 0.17 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "accounts/fireworks/models/minimax-m3": { + "id": "accounts/fireworks/models/minimax-m3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 512000, + "output": 512000 + } + }, + "accounts/fireworks/models/glm-5p3-flash": { + "id": "accounts/fireworks/models/glm-5p3-flash", + "name": "GLM 5.3 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048573, + "output": 131072 + } + }, + "accounts/fireworks/models/gpt-oss-120b": { + "id": "accounts/fireworks/models/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "accounts/fireworks/models/qwen3p8-max": { + "id": "accounts/fireworks/models/qwen3p8-max", + "name": "Qwen3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "accounts/fireworks/routers/minimax-latest": { + "id": "accounts/fireworks/routers/minimax-latest", + "name": "MiniMax Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 512000, + "output": 512000 + } + }, + "accounts/fireworks/routers/glm-flash-latest": { + "id": "accounts/fireworks/routers/glm-flash-latest", + "name": "GLM Flash Latest (GLM 5.3 Flash)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048573, + "output": 131072 + } + }, + "accounts/fireworks/routers/glm-fast-latest": { + "id": "accounts/fireworks/routers/glm-fast-latest", + "name": "GLM 5.3 Fast (Latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.1, + "output": 6.6, + "cache_read": 0.39 + }, + "limit": { + "context": 1048572, + "output": 262144 + } + }, + "accounts/fireworks/routers/kimi-k3-fast": { + "id": "accounts/fireworks/routers/kimi-k3-fast", + "name": "Kimi K3 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 4.5, + "output": 22.5, + "cache_read": 0.45 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "accounts/fireworks/routers/glm-5p3-fast": { + "id": "accounts/fireworks/routers/glm-5p3-fast", + "name": "GLM 5.3 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.1, + "output": 6.6, + "cache_read": 0.39 + }, + "limit": { + "context": 1048572, + "output": 262144 + } + }, + "accounts/fireworks/routers/kimi-fast-latest": { + "id": "accounts/fireworks/routers/kimi-fast-latest", + "name": "Kimi Fast Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 4.5, + "output": 22.5, + "cache_read": 0.45 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "accounts/fireworks/routers/qwen-max-latest": { + "id": "accounts/fireworks/routers/qwen-max-latest", + "name": "Qwen Max Latest (Qwen3.8 Max)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "accounts/fireworks/routers/kimi-latest": { + "id": "accounts/fireworks/routers/kimi-latest", + "name": "Kimi Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "accounts/fireworks/routers/deepseek-flash-latest": { + "id": "accounts/fireworks/routers/deepseek-flash-latest", + "name": "DeepSeek Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.66, + "cache_read": 0.007 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "accounts/fireworks/routers/glm-latest": { + "id": "accounts/fireworks/routers/glm-latest", + "name": "GLM Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1048573, + "output": 262144 + } + } + } + }, + "google": { + "id": "google", + "name": "Google", + "env": ["GOOGLE_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], + "npm": "@ai-sdk/google", + "models": { + "gemini-flash-latest": { + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemma-4-31b-it": { + "id": "gemma-4-31b-it", + "name": "Gemma 4 31B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "gemini-omni-flash-preview": { + "id": "gemini-omni-flash-preview", + "name": "Gemini Omni Flash Preview", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "cost": { + "input": 1.5, + "output": 17.5 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "gemini-3.1-flash-image-preview": { + "id": "gemini-3.1-flash-image-preview", + "name": "Nano Banana 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 60 + }, + "limit": { + "context": 65536, + "output": 65536 + } + }, + "veo-3.1-lite-generate-preview": { + "id": "veo-3.1-lite-generate-preview", + "name": "Veo 3.1 lite", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 480, + "output": 8192 + } + }, + "lyria-3-pro-preview": { + "id": "lyria-3-pro-preview", + "name": "Lyria 3 Pro Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.1-flash-tts-preview": { + "id": "gemini-3.1-flash-tts-preview", + "name": "Gemini 3.1 Flash TTS Preview", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 1, + "output": 20 + }, + "limit": { + "context": 8192, + "output": 16384 + } + }, + "gemini-2.5-flash-image": { + "id": "gemini-2.5-flash-image", + "name": "Nano Banana", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.3, + "output": 30, + "cache_read": 0.075 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "gemini-flash-lite-latest": { + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-embedding-2": { + "id": "gemini-embedding-2", + "name": "Gemini Embedding 2", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 1 + } + }, + "gemini-3.6-flash": { + "id": "gemini-3.6-flash", + "name": "Gemini 3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemma-4-26b-a4b-it": { + "id": "gemma-4-26b-a4b-it", + "name": "Gemma 4 26B A4B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "gemini-3-pro-image-preview": { + "id": "gemini-3-pro-image-preview", + "name": "Nano Banana Pro", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 120 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "gemini-2.5-pro-preview-tts": { + "id": "gemini-2.5-pro-preview-tts", + "name": "Gemini 2.5 Pro Preview TTS", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 1, + "output": 20 + }, + "limit": { + "context": 8192, + "output": 16384 + } + }, + "gemini-3.5-flash-lite": { + "id": "gemini-3.5-flash-lite", + "name": "Gemini 3.5 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.1-flash-image": { + "id": "gemini-3.1-flash-image", + "name": "Nano Banana 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 60 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "lyria-3-clip-preview": { + "id": "lyria-3-clip-preview", + "name": "Lyria 3 Clip Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.1-pro-preview": { + "id": "gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-2.5-computer-use-preview-10-2025": { + "id": "gemini-2.5-computer-use-preview-10-2025", + "name": "Gemini 2.5 Computer Use Preview 10-2025", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "tiers": [ + { + "input": 2.5, + "output": 15, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 128000, + "output": 64000 + } + }, + "gemini-3.5-flash": { + "id": "gemini-3.5-flash", + "name": "Gemini 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-2.5-pro": { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 128, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3-pro-image": { + "id": "gemini-3-pro-image", + "name": "Nano Banana Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 120 + }, + "limit": { + "context": 65536, + "output": 32768 + } + }, + "gemini-2.5-flash": { + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 0, + "max": 24576 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-2.5-flash-preview-tts": { + "id": "gemini-2.5-flash-preview-tts", + "name": "Gemini 2.5 Flash Preview TTS", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 0.5, + "output": 10 + }, + "limit": { + "context": 8192, + "output": 16384 + } + }, + "gemini-3.1-flash-lite-image": { + "id": "gemini-3.1-flash-lite-image", + "name": "Nano Banana 2 Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.25, + "output": 30 + }, + "limit": { + "context": 65536, + "output": 4096 + } + }, + "deep-research-preview-04-2026": { + "id": "deep-research-preview-04-2026", + "name": "Deep Research Preview (Apr-21-2026)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "deep-research-max-preview-04-2026": { + "id": "deep-research-max-preview-04-2026", + "name": "Deep Research Max Preview (Apr-21-2026)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "veo-3.1-fast-generate-preview": { + "id": "veo-3.1-fast-generate-preview", + "name": "Veo 3.1 fast", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "limit": { + "context": 480, + "output": 8192 + } + }, + "gemini-3.7-flash": { + "id": "gemini-3.7-flash", + "name": "Gemini 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "veo-3.1-generate-preview": { + "id": "veo-3.1-generate-preview", + "name": "Veo 3.1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 480, + "output": 8192 + } + }, + "gemini-3.1-pro-preview-customtools": { + "id": "gemini-3.1-pro-preview-customtools", + "name": "Gemini 3.1 Pro Preview Custom Tools", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3-flash-preview": { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.8-flash": { + "id": "gemini-3.8-flash", + "name": "Gemini 3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.5-live-translate-preview": { + "id": "gemini-3.5-live-translate-preview", + "name": "Gemini 3.5 Live Translate Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["audio", "text"] + }, + "cost": { + "input": 3.5, + "output": 21 + }, + "limit": { + "context": 16384, + "output": 32768 + } + }, + "gemini-2.5-flash-lite": { + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash-Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 512, + "max": 24576 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-embedding-001": { + "id": "gemini-embedding-001", + "name": "Gemini Embedding 001", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0 + }, + "limit": { + "context": 2048, + "output": 1 + } + }, + "gemini-3.1-flash-lite-preview": { + "id": "gemini-3.1-flash-lite-preview", + "name": "Gemini 3.1 Flash Lite Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.1-flash-live-preview": { + "id": "gemini-3.1-flash-live-preview", + "name": "Gemini 3.1 Flash Live Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.75, + "output": 4.5 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "gemini-3.1-flash-lite": { + "id": "gemini-3.1-flash-lite", + "name": "Gemini 3.1 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + } + } + }, + "google-vertex": { + "id": "google-vertex", + "name": "Vertex", + "env": [ + "GOOGLE_VERTEX_PROJECT", + "GOOGLE_VERTEX_LOCATION", + "GOOGLE_APPLICATION_CREDENTIALS" + ], + "npm": "@ai-sdk/google-vertex", + "models": { + "claude-opus-4-8@default": { + "id": "claude-opus-4-8@default", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-2.5-flash-tts": { + "id": "gemini-2.5-flash-tts", + "name": "Gemini 2.5 Flash TTS", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 0.5, + "output": 10 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "gemini-flash-latest": { + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-sonnet-4-5@20250929": { + "id": "claude-sonnet-4-5@20250929", + "name": "Claude Sonnet 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-2.5-flash-image": { + "id": "gemini-2.5-flash-image", + "name": "Nano Banana", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.3, + "output": 30 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "claude-opus-4-6@default": { + "id": "claude-opus-4-6@default", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "claude-opus-4@20250514": { + "id": "claude-opus-4@20250514", + "name": "Claude Opus 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-flash-lite-latest": { + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-sonnet-5-5@default": { + "id": "claude-sonnet-5-5@default", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "claude-opus-5-5@default": { + "id": "claude-opus-5-5@default", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.6-flash": { + "id": "gemini-3.6-flash", + "name": "Gemini 3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-opus-5@default": { + "id": "claude-opus-5@default", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "claude-sonnet-4-6@default": { + "id": "claude-sonnet-4-6@default", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "claude-haiku-4-5@20251001": { + "id": "claude-haiku-4-5@20251001", + "name": "Claude Haiku 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.5-flash-lite": { + "id": "gemini-3.5-flash-lite", + "name": "Gemini 3.5 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.1-flash-image": { + "id": "gemini-3.1-flash-image", + "name": "Nano Banana 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 60, + "cache_read": 0.05 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "gemini-3.1-pro-preview": { + "id": "gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-opus-4-1@20250805": { + "id": "claude-opus-4-1@20250805", + "name": "Claude Opus 4.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "claude-opus-4-5@20251101": { + "id": "claude-opus-4-5@20251101", + "name": "Claude Opus 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "claude-opus-4-7@default": { + "id": "claude-opus-4-7@default", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.5-flash": { + "id": "gemini-3.5-flash", + "name": "Gemini 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-2.5-pro": { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 128, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3-pro-image": { + "id": "gemini-3-pro-image", + "name": "Nano Banana Pro", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 120, + "cache_read": 0.2 + }, + "limit": { + "context": 65536, + "output": 32768 + } + }, + "gemini-2.5-flash": { + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 0, + "max": 24576 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-fable-5-1@default": { + "id": "claude-fable-5-1@default", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.7-flash": { + "id": "gemini-3.7-flash", + "name": "Gemini 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3.1-pro-preview-customtools": { + "id": "gemini-3.1-pro-preview-customtools", + "name": "Gemini 3.1 Pro Preview Custom Tools", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-3-flash-preview": { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-fable-5@default": { + "id": "claude-fable-5@default", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.8-flash": { + "id": "gemini-3.8-flash", + "name": "Gemini 3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "gemini-2.5-flash-lite": { + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash-Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 512, + "max": 24576 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01 + }, + "limit": { + "context": 1048576, + "output": 65535 + } + }, + "gemini-2.5-pro-tts": { + "id": "gemini-2.5-pro-tts", + "name": "Gemini 2.5 Pro TTS", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 1, + "output": 20 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "gemini-embedding-001": { + "id": "gemini-embedding-001", + "name": "Gemini Embedding 001", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0 + }, + "limit": { + "context": 2048, + "output": 1 + } + }, + "claude-sonnet-4@20250514": { + "id": "claude-sonnet-4@20250514", + "name": "Claude Sonnet 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.1-flash-lite-preview": { + "id": "gemini-3.1-flash-lite-preview", + "name": "Gemini 3.1 Flash Lite Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "claude-sonnet-5@default": { + "id": "claude-sonnet-5@default", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/google-vertex/anthropic" + } + }, + "gemini-3.1-flash-lite": { + "id": "gemini-3.1-flash-lite", + "name": "Gemini 3.1 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "meta/llama-4-maverick-17b-128e-instruct-maas": { + "id": "meta/llama-4-maverick-17b-128e-instruct-maas", + "name": "Llama 4 Maverick 17B 128E Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 1.15 + }, + "limit": { + "context": 524288, + "output": 8192 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "meta/llama-3.3-70b-instruct-maas": { + "id": "meta/llama-3.3-70b-instruct-maas", + "name": "Llama 3.3 70B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "xai/grok-4.20-reasoning": { + "id": "xai/grok-4.20-reasoning", + "name": "Grok 4.20 (Reasoning)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "xai/grok-4.20-non-reasoning": { + "id": "xai/grok-4.20-non-reasoning", + "name": "Grok 4.20 (Non-Reasoning)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "xai/grok-4.1-fast-reasoning": { + "id": "xai/grok-4.1-fast-reasoning", + "name": "Grok 4.1 Fast (Reasoning)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, + "limit": { + "context": 128000, + "output": 30000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "xai/grok-4.3": { + "id": "xai/grok-4.3", + "name": "Grok 4.3", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 200000, + "output": 30000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "xai/grok-4.1-fast-non-reasoning": { + "id": "xai/grok-4.1-fast-non-reasoning", + "name": "Grok 4.1 Fast", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, + "limit": { + "context": 128000, + "output": 30000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "xai/grok-4.6": { + "id": "xai/grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 524288, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "deepseek-ai/deepseek-v3.1-maas": { + "id": "deepseek-ai/deepseek-v3.1-maas", + "name": "DeepSeek V3.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.7, + "cache_read": 0.06 + }, + "limit": { + "context": 163840, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "deepseek-ai/deepseek-v3.2-maas": { + "id": "deepseek-ai/deepseek-v3.2-maas", + "name": "DeepSeek V3.2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.56, + "output": 1.68, + "cache_read": 0.056 + }, + "limit": { + "context": 163840, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "moonshotai/kimi-k2-thinking-maas": { + "id": "moonshotai/kimi-k2-thinking-maas", + "name": "Kimi K2 Thinking", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.06 + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "zai-org/glm-5-maas": { + "id": "zai-org/glm-5-maas", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.1 + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "zai-org/glm-4.7-maas": { + "id": "zai-org/glm-4.7-maas", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.06 + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "zai-org/glm-5.2-maas": { + "id": "zai-org/glm-5.2-maas", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.14 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "qwen/qwen3-235b-a22b-instruct-2507-maas": { + "id": "qwen/qwen3-235b-a22b-instruct-2507-maas", + "name": "Qwen3 235B A22B Instruct", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.88 + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "openai/gpt-oss-20b-maas": { + "id": "openai/gpt-oss-20b-maas", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.25, + "cache_read": 0.007 + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + }, + "openai/gpt-oss-120b-maas": { + "id": "openai/gpt-oss-120b-maas", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.36 + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi" + } + } + } + }, + "groq": { + "id": "groq", + "name": "Groq", + "env": ["GROQ_API_KEY"], + "npm": "@ai-sdk/groq", + "models": { + "whisper-large-v3": { + "id": "whisper-large-v3", + "name": "Whisper", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "llama-3.3-70b-versatile": { + "id": "llama-3.3-70b-versatile", + "name": "Llama 3.3 70B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.59, + "output": 0.79 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "allam-2-7b": { + "id": "allam-2-7b", + "name": "ALLaM-2-7b", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 4096, + "output": 4096 + } + }, + "whisper-large-v3-turbo": { + "id": "whisper-large-v3-turbo", + "name": "Whisper Large V3 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "llama-3.1-8b-instant": { + "id": "llama-3.1-8b-instant", + "name": "Llama 3.1 8B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.08 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "groq/compound-mini": { + "id": "groq/compound-mini", + "name": "Compound Mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "groq/compound": { + "id": "groq/compound", + "name": "Compound", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "meta-llama/llama-prompt-guard-2-86m": { + "id": "meta-llama/llama-prompt-guard-2-86m", + "name": "Prompt Guard 2 86M", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 512, + "output": 512 + } + }, + "meta-llama/llama-prompt-guard-2-22m": { + "id": "meta-llama/llama-prompt-guard-2-22m", + "name": "Llama Prompt Guard 2 22M", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.03 + }, + "limit": { + "context": 512, + "output": 512 + } + }, + "canopylabs/orpheus-v1-english": { + "id": "canopylabs/orpheus-v1-english", + "name": "Canopy Labs Orpheus V1 English", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 4000, + "output": 50000 + } + }, + "canopylabs/orpheus-arabic-saudi": { + "id": "canopylabs/orpheus-arabic-saudi", + "name": "Canopy Labs Orpheus Arabic Saudi", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 4000, + "output": 50000 + } + }, + "qwen/qwen3.8-27b": { + "id": "qwen/qwen3.8-27b", + "name": "Qwen3.8 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "default", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 4 + }, + "limit": { + "context": 131042, + "output": 16384 + } + }, + "qwen/qwen3.6-27b": { + "id": "qwen/qwen3.6-27b", + "name": "Qwen3.6 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "default"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3, + "cache_read": 0.3 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "openai/gpt-oss-20b": { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3, + "cache_read": 0.0375 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "openai/gpt-oss-safeguard-20b": { + "id": "openai/gpt-oss-safeguard-20b", + "name": "Safety GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "openai/gpt-oss-120b": { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 + }, + "limit": { + "context": 131072, + "output": 65536 + } + } + } + }, + "huggingface": { + "id": "huggingface", + "name": "Hugging Face", + "env": ["HF_TOKEN"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://router.huggingface.co/v1", + "models": { + "tencent/Hy3": { + "id": "tencent/Hy3", + "name": "Hy3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.58 + }, + "limit": { + "context": 262144, + "output": 128000 + } + }, + "tencent/Hy4-preview": { + "id": "tencent/Hy4-preview", + "name": "Hy4 preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.834, + "output": 2.501 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "meta-llama/Llama-3.1-8B-Instruct": { + "id": "meta-llama/Llama-3.1-8B-Instruct", + "name": "Llama-3.1-8B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.06 + }, + "limit": { + "context": 131072, + "output": 4096 + } + }, + "meta-llama/Llama-3.3-70B-Instruct": { + "id": "meta-llama/Llama-3.3-70B-Instruct", + "name": "Llama-3.3-70B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.59, + "output": 0.79 + }, + "limit": { + "context": 131072, + "output": 4096 + } + }, + "XiaomiMiMo/MiMo-V2-Flash": { + "id": "XiaomiMiMo/MiMo-V2-Flash", + "name": "MiMo-V2-Flash", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 262144, + "output": 4096 + } + }, + "XiaomiMiMo/MiMo-V2.5-Pro": { + "id": "XiaomiMiMo/MiMo-V2.5-Pro", + "name": "MiMo-V2.5-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "XiaomiMiMo/MiMo-V2.5": { + "id": "XiaomiMiMo/MiMo-V2.5", + "name": "MiMo-V2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "thinkingmachines/Inkling-Small": { + "id": "thinkingmachines/Inkling-Small", + "name": "Inkling Small", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.2 + }, + "limit": { + "context": 524288, + "output": 1048576 + } + }, + "thinkingmachines/Inkling": { + "id": "thinkingmachines/Inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 4.05 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "google/gemma-3-27b-it": { + "id": "google/gemma-3-27b-it", + "name": "Gemma 3 27B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.08, + "output": 0.16 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "google/gemma-3-12b-it": { + "id": "google/gemma-3-12b-it", + "name": "Gemma 3 12B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.15 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "google/gemma-3-4b-it": { + "id": "google/gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.1 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "google/gemma-4-31B-it": { + "id": "google/gemma-4-31B-it", + "name": "Gemma 4 31B IT", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "google/gemma-4-26B-A4B-it": { + "id": "google/gemma-4-26B-A4B-it", + "name": "Gemma 4 26B A4B IT", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + "id": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.5 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "Qwen/Qwen3.8-27B": { + "id": "Qwen/Qwen3.8-27B", + "name": "Qwen3.8 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 3 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + "id": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "name": "Qwen3-Next-80B-A3B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1 + }, + "limit": { + "context": 262144, + "output": 66536 + } + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + "id": "Qwen/Qwen2.5-Coder-32B-Instruct", + "name": "Qwen2.5-Coder-32B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.2 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "Qwen/Qwen3-Coder-Next": { + "id": "Qwen/Qwen3-Coder-Next", + "name": "Qwen3-Coder-Next", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.5 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + "id": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "name": "Qwen3 VL 235B A22B Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.98, + "output": 3.95 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "Qwen/Qwen3.5-27B": { + "id": "Qwen/Qwen3.5-27B", + "name": "Qwen3.5 27B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.4 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + "id": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "name": "Qwen3-Next-80B-A3B-Thinking", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "Qwen/Qwen3.6-35B-A3B": { + "id": "Qwen/Qwen3.6-35B-A3B", + "name": "Qwen3.6 35B-A3B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.95 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + "id": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "name": "Qwen3-235B-A22B-Thinking-2507", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 3 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "name": "Qwen3 235B-A22B Instruct 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.855, + "output": 2.565 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "Qwen/Qwen3-235B-A22B": { + "id": "Qwen/Qwen3-235B-A22B", + "name": "Qwen3 235B-A22B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.8 + }, + "limit": { + "context": 40960, + "output": 16384 + } + }, + "Qwen/Qwen3-32B": { + "id": "Qwen/Qwen3-32B", + "name": "Qwen3 32B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.29, + "output": 0.59 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + "id": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "name": "Qwen3-Coder 30B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.26 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3-Embedding-8B": { + "id": "Qwen/Qwen3-Embedding-8B", + "name": "Qwen 3 Embedding 8B", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.01, + "output": 0 + }, + "limit": { + "context": 32000, + "output": 4096 + } + }, + "Qwen/Qwen3.5-35B-A3B": { + "id": "Qwen/Qwen3.5-35B-A3B", + "name": "Qwen3.5 35B-A3B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3.5-122B-A10B": { + "id": "Qwen/Qwen3.5-122B-A10B", + "name": "Qwen3.5 122B-A10B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 3.2 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3.5-9B": { + "id": "Qwen/Qwen3.5-9B", + "name": "Qwen3.5 9B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.17, + "output": 0.25 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3.5-397B-A17B": { + "id": "Qwen/Qwen3.5-397B-A17B", + "name": "Qwen3.5-397B-A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "Qwen/Qwen3-Embedding-4B": { + "id": "Qwen/Qwen3-Embedding-4B", + "name": "Qwen 3 Embedding 4B", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.01, + "output": 0 + }, + "limit": { + "context": 32000, + "output": 2048 + } + }, + "Qwen/Qwen3.8-2.4T-A95B": { + "id": "Qwen/Qwen3.8-2.4T-A95B", + "name": "Qwen3.8 2.4T A95B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 6.25 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "Qwen/Qwen3-30B-A3B": { + "id": "Qwen/Qwen3-30B-A3B", + "name": "Qwen3 30B A3B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.12, + "output": 0.5 + }, + "limit": { + "context": 40960, + "output": 16384 + } + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "name": "Qwen3-Coder-480B-A35B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 66536 + } + }, + "Qwen/Qwen3.6-27B": { + "id": "Qwen/Qwen3.6-27B", + "name": "Qwen3.6 27B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.47, + "output": 3.19 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "deepseek-ai/DeepSeek-V3.1": { + "id": "deepseek-ai/DeepSeek-V3.1", + "name": "DeepSeek-V3.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 1 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "deepseek-ai/DeepSeek-V4-Flash-0731": { + "id": "deepseek-ai/DeepSeek-V4-Flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-R1": { + "id": "deepseek-ai/DeepSeek-R1", + "name": "DeepSeek-R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.5 + }, + "limit": { + "context": 64000, + "output": 32768 + } + }, + "deepseek-ai/DeepSeek-V4-Pro-0813": { + "id": "deepseek-ai/DeepSeek-V4-Pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.32, + "output": 3.96 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4.1-Flash": { + "id": "deepseek-ai/DeepSeek-V4.1-Flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4-Flash": { + "id": "deepseek-ai/DeepSeek-V4-Flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4-Pro": { + "id": "deepseek-ai/DeepSeek-V4-Pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.003625 + }, + "limit": { + "context": 1048576, + "output": 393216 + } + }, + "deepseek-ai/DeepSeek-V3.2": { + "id": "deepseek-ai/DeepSeek-V3.2", + "name": "DeepSeek-V3.2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.28, + "output": 0.4 + }, + "limit": { + "context": 163840, + "output": 65536 + } + }, + "deepseek-ai/DeepSeek-R1-0528": { + "id": "deepseek-ai/DeepSeek-R1-0528", + "name": "DeepSeek-R1-0528", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 5 + }, + "limit": { + "context": 163840, + "output": 163840 + } + }, + "deepseek-ai/DeepSeek-V3": { + "id": "deepseek-ai/DeepSeek-V3", + "name": "DeepSeek-V3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.3 + }, + "limit": { + "context": 64000, + "output": 8192 + } + }, + "deepseek-ai/DeepSeek-V3-0324": { + "id": "deepseek-ai/DeepSeek-V3-0324", + "name": "DeepSeek V3 0324", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 1.12 + }, + "limit": { + "context": 163840, + "output": 163840 + } + }, + "deepseek-ai/DeepSeek-V4-Flash-Vision-Exp": { + "id": "deepseek-ai/DeepSeek-V4-Flash-Vision-Exp", + "name": "DeepSeek V4 Flash Vision Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.44, + "output": 1.32 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "stepfun-ai/Step-3.7-Flash": { + "id": "stepfun-ai/Step-3.7-Flash", + "name": "Step 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.15 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "stepfun-ai/Step-3.5-Flash": { + "id": "stepfun-ai/Step-3.5-Flash", + "name": "Step 3.5 Flash", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "MiniMaxAI/MiniMax-M3": { + "id": "MiniMaxAI/MiniMax-M3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 524288, + "output": 512000 + } + }, + "MiniMaxAI/MiniMax-M2.1": { + "id": "MiniMaxAI/MiniMax-M2.1", + "name": "MiniMax-M2.1", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMaxAI/MiniMax-M2.5": { + "id": "MiniMaxAI/MiniMax-M2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMaxAI/MiniMax-M2.7": { + "id": "MiniMaxAI/MiniMax-M2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMaxAI/MiniMax-M2": { + "id": "MiniMaxAI/MiniMax-M2", + "name": "MiniMax-M2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "moonshotai/Kimi-K2.6": { + "id": "moonshotai/Kimi-K2.6", + "name": "Kimi-K2.6", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "moonshotai/Kimi-K3": { + "id": "moonshotai/Kimi-K3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "moonshotai/Kimi-K2-Instruct": { + "id": "moonshotai/Kimi-K2-Instruct", + "name": "Kimi-K2-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "moonshotai/Kimi-K2.7-Code": { + "id": "moonshotai/Kimi-K2.7-Code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "moonshotai/Kimi-K2.5": { + "id": "moonshotai/Kimi-K2.5", + "name": "Kimi-K2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3, + "cache_read": 0.1 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "moonshotai/Kimi-K2-Thinking": { + "id": "moonshotai/Kimi-K2-Thinking", + "name": "Kimi-K2-Thinking", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "moonshotai/Kimi-K2-Instruct-0905": { + "id": "moonshotai/Kimi-K2-Instruct-0905", + "name": "Kimi-K2-Instruct-0905", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "zai-org/GLM-4.6V-Flash": { + "id": "zai-org/GLM-4.6V-Flash", + "name": "GLM-4.6V-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "zai-org/GLM-5.1": { + "id": "zai-org/GLM-5.1", + "name": "GLM-5.1", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "zai-org/GLM-5.2": { + "id": "zai-org/GLM-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "zai-org/GLM-4.5-Air": { + "id": "zai-org/GLM-4.5-Air", + "name": "GLM-4.5-Air", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.85 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "zai-org/GLM-4.7": { + "id": "zai-org/GLM-4.7", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "zai-org/GLM-5": { + "id": "zai-org/GLM-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "zai-org/GLM-5.3-Flash": { + "id": "zai-org/GLM-5.3-Flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "zai-org/GLM-4.5V": { + "id": "zai-org/GLM-4.5V", + "name": "GLM-4.5V", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.8 + }, + "limit": { + "context": 65536, + "output": 16384 + } + }, + "zai-org/GLM-4.6": { + "id": "zai-org/GLM-4.6", + "name": "GLM-4.6", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.55, + "output": 2.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "zai-org/GLM-4.7-Flash": { + "id": "zai-org/GLM-4.7-Flash", + "name": "GLM-4.7-Flash", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 200000, + "output": 128000 + } + }, + "zai-org/GLM-5.3": { + "id": "zai-org/GLM-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "zai-org/GLM-4.5": { + "id": "zai-org/GLM-4.5", + "name": "GLM-4.5", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "openai/gpt-oss-20b": { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "openai/gpt-oss-120b": { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.69 + }, + "limit": { + "context": 131072, + "output": 32768 + } + } + } + }, + "jiekou": { + "id": "jiekou", + "name": "Jiekou.AI", + "env": ["JIEKOU_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.jiekou.ai/openai", + "models": { + "gpt-5-chat-latest": { + "id": "gpt-5-chat-latest", + "name": "gpt-5-chat-latest", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.125, + "output": 9 + }, + "limit": { + "context": 400000, + "output": 128000 + } + } + } + }, + "kilo": { + "id": "kilo", + "name": "Kilo Gateway", + "env": ["KILO_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.kilo.ai/api/gateway", + "models": { + "nex-agi/nex-n2.5-mini": { + "id": "nex-agi/nex-n2.5-mini", + "name": "Nex AGI: Nex-N2.5-Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.025, + "output": 0.1, + "cache_read": 0.0025 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "nex-agi/nex-n2.5-pro": { + "id": "nex-agi/nex-n2.5-pro", + "name": "Nex AGI: Nex-N2.5-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.25, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "openrouter/auto": { + "id": "openrouter/auto", + "name": "Auto Router", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["audio", "image", "pdf", "text", "video"], + "output": ["image", "text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 2000000, + "output": 32768 + } + }, + "~deepseek/deepseek-pro-latest": { + "id": "~deepseek/deepseek-pro-latest", + "name": "DeepSeek: DeepSeek Pro Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.123, + "output": 3.5, + "cache_read": 0.123 + }, + "limit": { + "context": 1048576, + "output": 393216 + } + }, + "inclusionai/ling-3.0-flash-fin": { + "id": "inclusionai/ling-3.0-flash-fin", + "name": "inclusionAI: Ling 3.0 Flash Fin", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.22, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 235929 + } + } + } + }, + "kimi-code-plan-cn": { + "id": "kimi-code-plan-cn", + "name": "Kimi For Coding (kimi.com)", + "env": ["KIMI_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.kimi.com/coding/v1", + "models": { + "kimi-for-coding-highspeed": { + "id": "kimi-for-coding-highspeed", + "name": "Kimi For Coding HighSpeed", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "kimi-for-coding": { + "id": "kimi-for-coding", + "name": "kimi-for-coding", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "k3-256k": { + "id": "k3-256k", + "name": "Kimi K3-256K", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "k3": { + "id": "k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + } + } + }, + "kimi-code-plan-global": { + "id": "kimi-code-plan-global", + "name": "Kimi For Coding (kimi.ai)", + "env": ["KIMI_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.kimi.ai/coding/v1", + "models": { + "kimi-for-coding-highspeed": { + "id": "kimi-for-coding-highspeed", + "name": "Kimi For Coding HighSpeed", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "kimi-for-coding": { + "id": "kimi-for-coding", + "name": "kimi-for-coding", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "k3-256k": { + "id": "k3-256k", + "name": "Kimi K3-256K", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "k3": { + "id": "k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + } + } + }, + "meta": { + "id": "meta", + "name": "Meta", + "env": ["META_MODEL_API_KEY"], + "npm": "@ai-sdk/openai", + "api": "https://api.meta.ai/v1", + "models": { + "muse-spark-1.3": { + "id": "muse-spark-1.3", + "name": "Muse Spark 1.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "muse-spark-1.1": { + "id": "muse-spark-1.1", + "name": "Muse Spark 1.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf", "video"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "muse-spark-1.2": { + "id": "muse-spark-1.2", + "name": "Muse Spark 1.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "muse-spark-1.2-contributor": { + "id": "muse-spark-1.2-contributor", + "name": "Muse Spark 1.2 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "muse-spark-1.3-contributor": { + "id": "muse-spark-1.3-contributor", + "name": "Muse Spark 1.3 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + } + } + }, + "minimax": { + "id": "minimax", + "name": "MiniMax (minimax.io)", + "env": ["MINIMAX_API_KEY"], + "npm": "@ai-sdk/anthropic", + "api": "https://api.minimax.io/anthropic/v1", + "models": { + "MiniMax-M3": { + "id": "MiniMax-M3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "tiers": [ + { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12, + "tier": { + "type": "context", + "size": 512000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 512000 + } + }, + "MiniMax-M2.1": { + "id": "MiniMax-M2.1", + "name": "MiniMax-M2.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.5": { + "id": "MiniMax-M2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.7": { + "id": "MiniMax-M2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.7-highspeed": { + "id": "MiniMax-M2.7-highspeed", + "name": "MiniMax-M2.7-highspeed", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2": { + "id": "MiniMax-M2", + "name": "MiniMax-M2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.5-highspeed": { + "id": "MiniMax-M2.5-highspeed", + "name": "MiniMax-M2.5-highspeed", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + } + }, + "minimax-cn": { + "id": "minimax-cn", + "name": "MiniMax (minimax.cn)", + "env": ["MINIMAX_API_KEY"], + "npm": "@ai-sdk/anthropic", + "api": "https://api.minimax.cn/anthropic/v1", + "models": { + "MiniMax-M3": { + "id": "MiniMax-M3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "tiers": [ + { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12, + "tier": { + "type": "context", + "size": 512000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 512000 + } + }, + "MiniMax-M2.1": { + "id": "MiniMax-M2.1", + "name": "MiniMax-M2.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.5": { + "id": "MiniMax-M2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.7": { + "id": "MiniMax-M2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.7-highspeed": { + "id": "MiniMax-M2.7-highspeed", + "name": "MiniMax-M2.7-highspeed", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2": { + "id": "MiniMax-M2", + "name": "MiniMax-M2", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMax-M2.5-highspeed": { + "id": "MiniMax-M2.5-highspeed", + "name": "MiniMax-M2.5-highspeed", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + } + } + }, + "mistral": { + "id": "mistral", + "name": "Mistral", + "env": ["MISTRAL_API_KEY"], + "npm": "@ai-sdk/mistral", + "models": { + "open-mistral-nemo": { + "id": "open-mistral-nemo", + "name": "Open Mistral Nemo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "codestral-latest": { + "id": "codestral-latest", + "name": "Codestral (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9, + "cache_read": 0.03 + }, + "limit": { + "context": 256000, + "output": 4096 + } + }, + "mistral-large-2411": { + "id": "mistral-large-2411", + "name": "Mistral Large 2.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "mistral-nemo": { + "id": "mistral-nemo", + "name": "Mistral Nemo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "voxtral-mini-tts-latest": { + "id": "voxtral-mini-tts-latest", + "name": "Voxtral Mini TTS (latest)", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "mistral-medium-2508": { + "id": "mistral-medium-2508", + "name": "Mistral Medium 3.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "mistral-large-latest": { + "id": "mistral-large-latest", + "name": "Mistral Large (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "mistral-small-latest": { + "id": "mistral-small-latest", + "name": "Mistral Small (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "zai-glm-5-2": { + "id": "zai-glm-5-2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.14 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "ministral-8b-latest": { + "id": "ministral-8b-latest", + "name": "Ministral 8B (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "devstral-medium-latest": { + "id": "devstral-medium-latest", + "name": "Devstral 2 (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "open-mixtral-8x22b": { + "id": "open-mixtral-8x22b", + "name": "Mixtral 8x22B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 64000, + "output": 64000 + } + }, + "devstral-2512": { + "id": "devstral-2512", + "name": "Devstral 2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "mistral-medium-2505": { + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "magistral-medium-latest": { + "id": "magistral-medium-latest", + "name": "Magistral Medium (latest)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 5 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "pixtral-12b": { + "id": "pixtral-12b", + "name": "Pixtral 12B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "mistral-embed": { + "id": "mistral-embed", + "name": "Mistral Embed", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 8000, + "output": 3072 + } + }, + "devstral-small-2505": { + "id": "devstral-small-2505", + "name": "Devstral Small 2505", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "mistral-small-2603": { + "id": "mistral-small-2603", + "name": "Mistral Small 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "devstral-medium-2507": { + "id": "devstral-medium-2507", + "name": "Devstral Medium", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "voxtral-mini-latest": { + "id": "voxtral-mini-latest", + "name": "Voxtral Mini (latest)", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "labs-devstral-small-2512": { + "id": "labs-devstral-small-2512", + "name": "Devstral Small 2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "mistral-large-2512": { + "id": "mistral-large-2512", + "name": "Mistral Large 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "devstral-latest": { + "id": "devstral-latest", + "name": "Devstral 2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "devstral-small-2507": { + "id": "devstral-small-2507", + "name": "Devstral Small", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "pixtral-large-latest": { + "id": "pixtral-large-latest", + "name": "Pixtral Large (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "voxtral-small-latest": { + "id": "voxtral-small-latest", + "name": "Voxtral Small (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "open-mixtral-8x7b": { + "id": "open-mixtral-8x7b", + "name": "Mixtral 8x7B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 0.7 + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "mistral-small-2506": { + "id": "mistral-small-2506", + "name": "Mistral Small 3.2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "zai-glm-5-3": { + "id": "zai-glm-5-3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.14 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "mistral-medium-2604": { + "id": "mistral-medium-2604", + "name": "Mistral Medium 3.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "open-mistral-7b": { + "id": "open-mistral-7b", + "name": "Mistral 7B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.25 + }, + "limit": { + "context": 8000, + "output": 8000 + } + }, + "ministral-3b-latest": { + "id": "ministral-3b-latest", + "name": "Ministral 3B (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "mistral-medium-latest": { + "id": "mistral-medium-latest", + "name": "Mistral Medium (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 262144 + } + } + } + }, + "moonshotai": { + "id": "moonshotai", + "name": "Moonshot AI", + "env": ["MOONSHOT_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.moonshot.ai/v1", + "models": { + "kimi-k3": { + "id": "kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "kimi-k2.7-code-highspeed": { + "id": "kimi-k2.7-code-highspeed", + "name": "Kimi K2.7 Code HighSpeed", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 1.9, + "output": 8, + "cache_read": 0.38 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "kimi-k2.7-code": { + "id": "kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 262144, + "output": 262144 + } + } + } + }, + "moonshotai-cn": { + "id": "moonshotai-cn", + "name": "Moonshot AI (China)", + "env": ["MOONSHOT_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.moonshot.cn/v1", + "models": { + "kimi-k2.7-code": { + "id": "kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "kimi-k2.7-code-highspeed": { + "id": "kimi-k2.7-code-highspeed", + "name": "Kimi K2.7 Code HighSpeed", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 1.9, + "output": 8, + "cache_read": 0.38 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "kimi-k3": { + "id": "kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + } + } + }, + "nano-gpt": { + "id": "nano-gpt", + "name": "NanoGPT", + "env": ["NANO_GPT_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://nano-gpt.com/api/v1", + "models": { + "mistralai/mistral-medium-3.5": { + "id": "mistralai/mistral-medium-3.5", + "name": "Mistral Medium 3.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.75 + }, + "limit": { + "context": 256000, + "output": 32768 + } + }, + "inclusionai/ling-3.0-flash-vl": { + "id": "inclusionai/ling-3.0-flash-vl", + "name": "Ling 3.0 Flash VL", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.18, + "cache_read": 0.012 + }, + "limit": { + "context": 262144, + "output": 32768 + } + } + } + }, + "novita-ai": { + "id": "novita-ai", + "name": "NovitaAI", + "env": ["NOVITA_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.novita.ai/openai", + "models": { + "inclusionai/ring-2.6-1t": { + "id": "inclusionai/ring-2.6-1t", + "name": "Ring-2.6-1T", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.06 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "inclusionai/ling-2.6-1t": { + "id": "inclusionai/ling-2.6-1t", + "name": "Ling-2.6-1T", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.06 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "inclusionai/ling-2.6-flash": { + "id": "inclusionai/ling-2.6-flash", + "name": "Ling-2.6-flash", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.02 + }, + "limit": { + "context": 262144, + "output": 32768 + } + } + } + }, + "nvidia": { + "id": "nvidia", + "name": "Nvidia", + "env": ["NVIDIA_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://integrate.api.nvidia.com/v1", + "models": { + "baai/bge-m3": { + "id": "baai/bge-m3", + "name": "BGE M3", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 1024 + } + }, + "poolside/laguna-xs-2.1": { + "id": "poolside/laguna-xs-2.1", + "name": "Laguna XS 2.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "abacusai/dracarys-llama-3.1-70b-instruct": { + "id": "abacusai/dracarys-llama-3.1-70b-instruct", + "name": "dracarys-llama-3.1-70b-instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "z-ai/glm-5.3-flash": { + "id": "z-ai/glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "z-ai/glm-5.2": { + "id": "z-ai/glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "z-ai/glm-5.3": { + "id": "z-ai/glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "thinkingmachines/inkling": { + "id": "thinkingmachines/inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 16384 + } + }, + "black-forest-labs/flux_1-schnell": { + "id": "black-forest-labs/flux_1-schnell", + "name": "FLUX.1-schnell", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 77, + "output": 0 + } + }, + "black-forest-labs/flux.1-dev": { + "id": "black-forest-labs/flux.1-dev", + "name": "FLUX.1-dev", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 4096, + "output": 0 + } + }, + "black-forest-labs/flux_1-kontext-dev": { + "id": "black-forest-labs/flux_1-kontext-dev", + "name": "FLUX.1-Kontext-dev", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 40960, + "output": 40960 + } + }, + "black-forest-labs/flux_2-klein-4b": { + "id": "black-forest-labs/flux_2-klein-4b", + "name": "FLUX.2 Klein 4B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["image"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 40960, + "output": 40960 + } + }, + "meta/llama-guard-4-12b": { + "id": "meta/llama-guard-4-12b", + "name": "Llama Guard 4 12B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "meta/muse-glimmer-30b": { + "id": "meta/muse-glimmer-30b", + "name": "Muse Glimmer 30B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "meta/esmfold": { + "id": "meta/esmfold", + "name": "esmfold", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "meta/llama-3.3-70b-instruct": { + "id": "meta/llama-3.3-70b-instruct", + "name": "Llama 3.3 70b Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/llama-3.2-90b-vision-instruct": { + "id": "meta/llama-3.2-90b-vision-instruct", + "name": "Llama-3.2-90B-Vision-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "meta/llama-4-maverick-17b-128e-instruct": { + "id": "meta/llama-4-maverick-17b-128e-instruct", + "name": "Llama 4 Maverick 17b 128e Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/llama-3.1-8b-instruct": { + "id": "meta/llama-3.1-8b-instruct", + "name": "Llama 3.1 8B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 16000, + "output": 4096 + } + }, + "meta/llama-3.2-11b-vision-instruct": { + "id": "meta/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11b Vision Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/llama-3.2-1b-instruct": { + "id": "meta/llama-3.2-1b-instruct", + "name": "Llama 3.2 1b Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/llama-3.2-3b-instruct": { + "id": "meta/llama-3.2-3b-instruct", + "name": "Llama 3.2 3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 32000 + } + }, + "meta/llama-3.1-70b-instruct": { + "id": "meta/llama-3.1-70b-instruct", + "name": "Llama 3.1 70b Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/esm2-650m": { + "id": "meta/esm2-650m", + "name": "esm2-650m", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "upstage/solar-10.7b-instruct": { + "id": "upstage/solar-10.7b-instruct", + "name": "solar-10.7b-instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "bytedance/seed-oss-36b-instruct": { + "id": "bytedance/seed-oss-36b-instruct", + "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + "google/gemma-4-31b-it": { + "id": "google/gemma-4-31b-it", + "name": "Gemma-4-31B-IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 16384 + } + }, + "google/gemma-2-2b-it": { + "id": "google/gemma-2-2b-it", + "name": "Gemma 2 2b It", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "google/gemma-3-12b-it": { + "id": "google/gemma-3-12b-it", + "name": "Gemma 3 12B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "google/gemma-3n-e2b-it": { + "id": "google/gemma-3n-e2b-it", + "name": "Gemma 3n E2b It", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "google/google-paligemma": { + "id": "google/google-paligemma", + "name": "paligemma", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "google/gemma-3n-e4b-it": { + "id": "google/gemma-3n-e4b-it", + "name": "Gemma 3n E4b It", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "google/gemma-3-4b-it": { + "id": "google/gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "minimaxai/minimax-m2.7": { + "id": "minimaxai/minimax-m2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "minimaxai/minimax-m3": { + "id": "minimaxai/minimax-m3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 16384 + } + }, + "deepseek-ai/deepseek-v4-flash-0731": { + "id": "deepseek-ai/deepseek-v4-flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek-ai/deepseek-v4-pro-0813": { + "id": "deepseek-ai/deepseek-v4-pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek-ai/deepseek-v4-pro": { + "id": "deepseek-ai/deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.003625 + }, + "limit": { + "context": 1048576, + "output": 393216 + } + }, + "deepseek-ai/deepseek-v4-flash": { + "id": "deepseek-ai/deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1048576, + "output": 393216 + } + }, + "stepfun-ai/step-3.5-flash": { + "id": "stepfun-ai/step-3.5-flash", + "name": "Step 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 16384 + } + }, + "stepfun-ai/step-3.7-flash": { + "id": "stepfun-ai/step-3.7-flash", + "name": "Step 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 16384 + } + }, + "mistralai/mistral-nemotron": { + "id": "mistralai/mistral-nemotron", + "name": "mistral-nemotron", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "mistralai/mistral-7b-instruct-v0.3": { + "id": "mistralai/mistral-7b-instruct-v0.3", + "name": "Mistral-7B-Instruct-v0.3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 65536, + "output": 65536 + } + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + "id": "mistralai/mistral-large-3-675b-instruct-2512", + "name": "Mistral Large 3 675B Instruct 2512", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "mistralai/magistral-small-2506": { + "id": "mistralai/magistral-small-2506", + "name": "Magistral Small 2506", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "mistralai/mistral-small-4-119b-2603": { + "id": "mistralai/mistral-small-4-119b-2603", + "name": "mistral-small-4-119b-2603", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "mistralai/mixtral-8x7b-instruct": { + "id": "mistralai/mixtral-8x7b-instruct", + "name": "Mistral: Mixtral 8x7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "mistralai/mistral-medium-3.5-128b": { + "id": "mistralai/mistral-medium-3.5-128b", + "name": "Mistral Medium 3.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "mistralai/ministral-14b-instruct-2512": { + "id": "mistralai/ministral-14b-instruct-2512", + "name": "Ministral 3 14B Instruct 2512", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "mistralai/mixtral-8x22b-instruct": { + "id": "mistralai/mixtral-8x22b-instruct", + "name": "Mistral: Mixtral 8x22B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 65536, + "output": 13108 + } + }, + "mistralai/mistral-medium-3-instruct": { + "id": "mistralai/mistral-medium-3-instruct", + "name": "Mistral Medium 3", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "moonshotai/kimi-k3": { + "id": "moonshotai/kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "moonshotai/kimi-k2.6": { + "id": "moonshotai/kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "sarvamai/sarvam-m": { + "id": "sarvamai/sarvam-m", + "name": "sarvam-m", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + "id": "nvidia/nvidia-nemotron-nano-9b-v2", + "name": "nvidia-nemotron-nano-9b-v2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "nvidia/llama-3.1-nemotron-ultra-253b-v1": { + "id": "nvidia/llama-3.1-nemotron-ultra-253b-v1", + "name": "Llama 3.1 Nemotron Ultra 253B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "nvidia/sparsedrive": { + "id": "nvidia/sparsedrive", + "name": "sparsedrive", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/nemotron-3-nano-30b-a3b": { + "id": "nvidia/nemotron-3-nano-30b-a3b", + "name": "nemotron-3-nano-30b-a3b", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "nvidia/nemotron-3.5-lightning-30b-a3b": { + "id": "nvidia/nemotron-3.5-lightning-30b-a3b", + "name": "Nemotron 3.5 Lightning 30B A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "nvidia/llama-nemotron-embed-vl-1b-v2": { + "id": "nvidia/llama-nemotron-embed-vl-1b-v2", + "name": "llama-nemotron-embed-vl-1b-v2", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "nvidia/nv-embedcode-7b-v1": { + "id": "nvidia/nv-embedcode-7b-v1", + "name": "nv-embedcode-7b-v1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "nvidia/nemotron-voicechat": { + "id": "nvidia/nemotron-voicechat", + "name": "nemotron-voicechat", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/bevformer": { + "id": "nvidia/bevformer", + "name": "bevformer", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/cosmos-transfer1-7b": { + "id": "nvidia/cosmos-transfer1-7b", + "name": "cosmos-transfer1-7b", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/cosmos-predict1-5b": { + "id": "nvidia/cosmos-predict1-5b", + "name": "cosmos-predict1-5b", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/llama-3.1-nemotron-nano-vl-8b-v1": { + "id": "nvidia/llama-3.1-nemotron-nano-vl-8b-v1", + "name": "Llama 3.1 Nemotron Nano VL 8B v1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "nvidia/nemotron-3-super-120b-a12b": { + "id": "nvidia/nemotron-3-super-120b-a12b", + "name": "Nemotron 3 Super", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.8 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "nvidia/studiovoice": { + "id": "nvidia/studiovoice", + "name": "studiovoice", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/nemotron-content-safety-reasoning-4b": { + "id": "nvidia/nemotron-content-safety-reasoning-4b", + "name": "nemotron-content-safety-reasoning-4b", + "reasoning": true, + "reasoning_options": [], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/llama-3.1-nemotron-safety-guard-8b-v3": { + "id": "nvidia/llama-3.1-nemotron-safety-guard-8b-v3", + "name": "llama-3.1-nemotron-safety-guard-8b-v3", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/nv-embed-v1": { + "id": "nvidia/nv-embed-v1", + "name": "nv-embed-v1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "nvidia/synthetic-video-detector": { + "id": "nvidia/synthetic-video-detector", + "name": "synthetic-video-detector", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/cosmos-transfer2_5-2b": { + "id": "nvidia/cosmos-transfer2_5-2b", + "name": "cosmos-transfer2.5-2b", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/nemotron-3-ultra-550b-a55b": { + "id": "nvidia/nemotron-3-ultra-550b-a55b", + "name": "Nemotron 3 Ultra 550B A55B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 2.5, + "cache_read": 0.15 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": { + "id": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning", + "name": "Nemotron 3 Nano Omni", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": -1, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 65536 + } + }, + "nvidia/llama-3.1-nemotron-nano-8b-v1": { + "id": "nvidia/llama-3.1-nemotron-nano-8b-v1", + "name": "Llama 3.1 Nemotron Nano 8B v1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "nvidia/active-speaker-detection": { + "id": "nvidia/active-speaker-detection", + "name": "Active Speaker Detection", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/streampetr": { + "id": "nvidia/streampetr", + "name": "streampetr", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/llama-nemotron-rerank-vl-1b-v2": { + "id": "nvidia/llama-nemotron-rerank-vl-1b-v2", + "name": "llama-nemotron-rerank-vl-1b-v2", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/nemotron-mini-4b-instruct": { + "id": "nvidia/nemotron-mini-4b-instruct", + "name": "nemotron-mini-4b-instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/cosmos-reason2-8b": { + "id": "nvidia/cosmos-reason2-8b", + "name": "Cosmos Reason2 8B", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "nvidia/nemotron-3-content-safety": { + "id": "nvidia/nemotron-3-content-safety", + "name": "nemotron-3-content-safety", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/llama-3.3-nemotron-super-49b-v1": { + "id": "nvidia/llama-3.3-nemotron-super-49b-v1", + "name": "Llama 3.3 Nemotron Super 49B v1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "nvidia/magpie-tts-zeroshot": { + "id": "nvidia/magpie-tts-zeroshot", + "name": "magpie-tts-zeroshot", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "audio"], + "output": ["audio"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/riva-translate-4b-instruct-v1.1": { + "id": "nvidia/riva-translate-4b-instruct-v1.1", + "name": "riva-translate-4b-instruct-v1_1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/nemotron-nano-12b-v2-vl": { + "id": "nvidia/nemotron-nano-12b-v2-vl", + "name": "Nemotron Nano 12B v2 VL", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + "id": "nvidia/llama-3.3-nemotron-super-49b-v1.5", + "name": "Llama 3.3 Nemotron Super 49B v1.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "nvidia/llama-3_2-nemoretriever-300m-embed-v1": { + "id": "nvidia/llama-3_2-nemoretriever-300m-embed-v1", + "name": "llama-3_2-nemoretriever-300m-embed-v1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32768, + "output": 2048 + } + }, + "nvidia/gliner-pii": { + "id": "nvidia/gliner-pii", + "name": "gliner-pii", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/usdcode": { + "id": "nvidia/usdcode", + "name": "usdcode", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "nvidia/usdvalidate": { + "id": "nvidia/usdvalidate", + "name": "usdvalidate", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + "id": "nvidia/llama-3.1-nemotron-70b-instruct", + "name": "Llama 3.1 Nemotron 70B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/rerank-qa-mistral-4b": { + "id": "nvidia/rerank-qa-mistral-4b", + "name": "rerank-qa-mistral-4b", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "qwen/qwen-image-edit": { + "id": "qwen/qwen-image-edit", + "name": "Qwen Image Edit", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 66536 + } + }, + "qwen/qwen3.5-122b-a10b": { + "id": "qwen/qwen3.5-122b-a10b", + "name": "Qwen3.5 122B-A10B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3-next-80b-a3b-instruct": { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen3-Next-80B-A3B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "qwen/qwen3.5-397b-a17b": { + "id": "qwen/qwen3.5-397b-a17b", + "name": "Qwen3.5-397B-A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 8192 + } + }, + "qwen/qwen2.5-coder-32b-instruct": { + "id": "qwen/qwen2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32b Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "qwen/qwen-image": { + "id": "qwen/qwen-image", + "name": "Qwen Image", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/whisper-large-v3": { + "id": "openai/whisper-large-v3", + "name": "Whisper Large v3", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 0, + "output": 4096 + } + }, + "openai/gpt-oss-20b": { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "microsoft/phi-4-mini-instruct": { + "id": "microsoft/phi-4-mini-instruct", + "name": "Phi-4-Mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "microsoft/phi-4-multimodal-instruct": { + "id": "microsoft/phi-4-multimodal-instruct", + "name": "Phi 4 Multimodal", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 16384 + } + } + } + }, + "openai": { + "id": "openai", + "name": "OpenAI", + "env": ["OPENAI_API_KEY"], + "npm": "@ai-sdk/openai", + "models": { + "chatgpt-image-latest": { + "id": "chatgpt-image-latest", + "name": "chatgpt-image-latest", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "gpt-5.4": { + "id": "gpt-5.4", + "name": "GPT-5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.4-pro": { + "id": "gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-3.5-turbo": { + "id": "gpt-3.5-turbo", + "name": "GPT-3.5-turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 0 + }, + "limit": { + "context": 16385, + "output": 4096 + } + }, + "gpt-5.5-pro": { + "id": "gpt-5.5-pro", + "name": "GPT-5.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "text-embedding-3-small": { + "id": "text-embedding-3-small", + "name": "text-embedding-3-small", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.02, + "output": 0 + }, + "limit": { + "context": 8191, + "output": 1536 + } + }, + "gpt-5.4-nano": { + "id": "gpt-5.4-nano", + "name": "GPT-5.4 nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-realtime-2.1": { + "id": "gpt-realtime-2.1", + "name": "GPT-Realtime-2.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "audio", "image"], + "output": ["text", "audio"] + }, + "cost": { + "input": 4, + "output": 24, + "cache_read": 0.4 + }, + "limit": { + "context": 128000, + "output": 32000 + } + }, + "gpt-4o-2024-05-13": { + "id": "gpt-4o-2024-05-13", + "name": "GPT-4o (2024-05-13)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 15 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "gpt-4o": { + "id": "gpt-4o", + "name": "GPT-4o", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "gpt-5-mini": { + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-image-2": { + "id": "gpt-image-2", + "name": "gpt-image-2", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "gpt-5.2-pro": { + "id": "gpt-5.2-pro", + "name": "GPT-5.2 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 21, + "output": 168 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "o4-mini": { + "id": "o4-mini", + "name": "o4-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "o3-mini": { + "id": "o3-mini", + "name": "o3-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "text-embedding-ada-002": { + "id": "text-embedding-ada-002", + "name": "text-embedding-ada-002", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0 + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "gpt-4": { + "id": "gpt-4", + "name": "GPT-4", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 60 + }, + "limit": { + "context": 8192, + "output": 8192 + } + }, + "gpt-5.3-codex": { + "id": "gpt-5.3-codex", + "name": "GPT-5.3 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-4.1-nano": { + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "gpt-5-nano": { + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.6": { + "id": "gpt-5.6", + "name": "GPT-5.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.2-chat-latest": { + "id": "gpt-5.2-chat-latest", + "name": "GPT-5.2 Chat", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "o1": { + "id": "o1", + "name": "o1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "gpt-5-pro": { + "id": "gpt-5-pro", + "name": "GPT-5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 120 + }, + "limit": { + "context": 400000, + "output": 272000 + } + }, + "gpt-5.3-codex-spark": { + "id": "gpt-5.3-codex-spark", + "name": "GPT-5.3 Codex Spark", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 32000 + } + }, + "gpt-6.1-sol": { + "id": "gpt-6.1-sol", + "name": "GPT-6.1 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "text-embedding-3-large": { + "id": "text-embedding-3-large", + "name": "text-embedding-3-large", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0 + }, + "limit": { + "context": 8191, + "output": 3072 + } + }, + "gpt-4o-2024-08-06": { + "id": "gpt-4o-2024-08-06", + "name": "GPT-4o (2024-08-06)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "gpt-6-astra": { + "id": "gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.1": { + "id": "gpt-5.1", + "name": "GPT-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-4o-mini": { + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "o3-pro": { + "id": "o3-pro", + "name": "o3-pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 20, + "output": 80 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "gpt-image-1": { + "id": "gpt-image-1", + "name": "gpt-image-1", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "gpt-daybreak-blue-latest": { + "id": "gpt-daybreak-blue-latest", + "name": "Daybreak Blue", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.4-mini": { + "id": "gpt-5.4-mini", + "name": "GPT-5.4 mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.6-luna": { + "id": "gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.2": { + "id": "gpt-5.2", + "name": "GPT-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.5": { + "id": "gpt-5.5", + "name": "GPT-5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-4.1": { + "id": "gpt-4.1", + "name": "GPT-4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "gpt-4o-2024-11-20": { + "id": "gpt-4o-2024-11-20", + "name": "GPT-4o (2024-11-20)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "gpt-4.1-mini": { + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "gpt-6-luna": { + "id": "gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-5.3-chat-latest": { + "id": "gpt-5.3-chat-latest", + "name": "GPT-5.3 Chat (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "gpt-image-1-mini": { + "id": "gpt-image-1-mini", + "name": "gpt-image-1-mini", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "gpt-image-1.5": { + "id": "gpt-image-1.5", + "name": "gpt-image-1.5", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "gpt-5.6-terra": { + "id": "gpt-5.6-terra", + "name": "GPT-5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-4-turbo": { + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 30 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "gpt-daybreak-red-latest": { + "id": "gpt-daybreak-red-latest", + "name": "Daybreak Red", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 12.5, + "output": 75, + "cache_read": 1.25, + "cache_write": 15.625 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "o3": { + "id": "o3", + "name": "o3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "gpt-5": { + "id": "gpt-5", + "name": "GPT-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "gpt-5.6-sol": { + "id": "gpt-5.6-sol", + "name": "GPT-5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "gpt-6-sol": { + "id": "gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "o1-pro": { + "id": "o1-pro", + "name": "o1-pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 150, + "output": 600 + }, + "limit": { + "context": 200000, + "output": 100000 + } + } + } + }, + "opencode": { + "id": "opencode", + "name": "OpenCode Zen", + "env": ["OPENCODE_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://opencode.ai/zen/v1", + "models": { + "ling-3.0-flash-fin-free": { + "id": "ling-3.0-flash-fin-free", + "name": "Ling 3.0 Flash Fin Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "gpt-5.4": { + "id": "gpt-5.4", + "name": "GPT-5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "qwen3.6-plus-free": { + "id": "qwen3.6-plus-free", + "name": "Qwen3.6 Plus Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "claude-haiku-4-5": { + "id": "claude-haiku-4-5", + "name": "Claude Haiku 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-5.4-pro": { + "id": "gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "cache_read": 30 + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "mimo-v2-pro-free": { + "id": "mimo-v2-pro-free", + "name": "MiMo V2 Pro Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1048576, + "output": 64000 + } + }, + "muse-spark-1.2-contributor-free": { + "id": "muse-spark-1.2-contributor-free", + "name": "Muse Spark 1.2 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1048576, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "muse-spark-1.3": { + "id": "muse-spark-1.3", + "name": "Muse Spark 1.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "glm-5-free": { + "id": "glm-5-free", + "name": "GLM-5 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "trinity-large-preview-free": { + "id": "trinity-large-preview-free", + "name": "Trinity Large Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "gpt-5.5-pro": { + "id": "gpt-5.5-pro", + "name": "GPT-5.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "cache_read": 30 + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "grok-4.7": { + "id": "grok-4.7", + "name": "Grok 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "longcat-2.5-preview-free": { + "id": "longcat-2.5-preview-free", + "name": "LongCat 2.5 Preview Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "gpt-5.4-nano": { + "id": "gpt-5.4-nano", + "name": "GPT-5.4 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "gpt-5.2-codex": { + "id": "gpt-5.2-codex", + "name": "GPT-5.2 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "ling-3.0-tiny-free": { + "id": "ling-3.0-tiny-free", + "name": "Ling-3.0-tiny Free", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "gpt-5.1-codex": { + "id": "gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "glm-5.3-flash": { + "id": "glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k2.5-free": { + "id": "kimi-k2.5-free", + "name": "Kimi K2.5 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "glm-4.7-free": { + "id": "glm-4.7-free", + "name": "GLM-4.7 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "glm-4.6": { + "id": "glm-4.6", + "name": "GLM-4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.1 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "laguna-s-2.1-free": { + "id": "laguna-s-2.1-free", + "name": "Laguna S 2.1 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "qwen3.8-max": { + "id": "qwen3.8-max", + "name": "Qwen3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25, + "cache_write": 2.5 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "kimi-k3": { + "id": "kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "gpt-5-codex": { + "id": "gpt-5-codex", + "name": "GPT-5 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "qwen3-coder": { + "id": "qwen3-coder", + "name": "Qwen3 Coder", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 1.8 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "minimax-m3-free": { + "id": "minimax-m3-free", + "name": "MiniMax-M3 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "qwen3.5-plus": { + "id": "qwen3.5-plus", + "name": "Qwen3.5 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25 + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "claude-opus-4-5": { + "id": "claude-opus-4-5", + "name": "Claude Opus 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "glm-5": { + "id": "glm-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "deepseek-v4.1-flash": { + "id": "deepseek-v4.1-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.006 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "gpt-5.3-codex": { + "id": "gpt-5.3-codex", + "name": "GPT-5.3 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "minimax-m2.5": { + "id": "minimax-m2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "gpt-5-nano": { + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "deepseek-v4-flash-vision-exp": { + "id": "deepseek-v4-flash-vision-exp", + "name": "DeepSeek V4 Flash Vision Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.028 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "claude-sonnet-4-5": { + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "claude-opus-5-5": { + "id": "claude-opus-5-5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "claude-fable-5-1": { + "id": "claude-fable-5-1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gemini-3.6-flash": { + "id": "gemini-3.6-flash", + "name": "Gemini 3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "kimi-k2-thinking": { + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2.5, + "cache_read": 0.4 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "minimax-m2.5-free": { + "id": "minimax-m2.5-free", + "name": "MiniMax-M2.5 Free", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-5.3-codex-spark": { + "id": "gpt-5.3-codex-spark", + "name": "GPT-5.3 Codex Spark", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "gpt-6.1-sol": { + "id": "gpt-6.1-sol", + "name": "GPT-6.1 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "gemini-3.5-flash-lite": { + "id": "gemini-3.5-flash-lite", + "name": "Gemini 3.5 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "claude-opus-4-1": { + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-6-astra": { + "id": "gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "grok-4.5": { + "id": "grok-4.5", + "name": "Grok 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.3, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "ring-2.6-1t-free": { + "id": "ring-2.6-1t-free", + "name": "Ring 2.6 1T Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262000, + "output": 66000 + } + }, + "kimi-k2.5": { + "id": "kimi-k2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3, + "cache_read": 0.08 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "longcat-2.0-free": { + "id": "longcat-2.0-free", + "name": "LongCat-2.0 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "gpt-5.1": { + "id": "gpt-5.1", + "name": "GPT-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "claude-opus-5": { + "id": "claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "claude-3-5-haiku": { + "id": "claude-3-5-haiku", + "name": "Claude Haiku 3.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "hy3-preview-free": { + "id": "hy3-preview-free", + "name": "Hy3 preview Free", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 256000, + "output": 64000 + } + }, + "gemini-3-flash": { + "id": "gemini-3-flash", + "name": "Gemini 3 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "minimax-m2.7": { + "id": "minimax-m2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "gemini-3.5-flash": { + "id": "gemini-3.5-flash", + "name": "Gemini 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "space-bunny-free": { + "id": "space-bunny-free", + "name": "Space Bunny Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1048576, + "output": 524288 + } + }, + "claude-fable-5": { + "id": "claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "nemotron-3-super-free": { + "id": "nemotron-3-super-free", + "name": "Nemotron 3 Super Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 204800, + "output": 128000 + } + }, + "minimax-m2.1-free": { + "id": "minimax-m2.1-free", + "name": "MiniMax-M2.1 Free", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "mimo-v2.6-flash-free": { + "id": "mimo-v2.6-flash-free", + "name": "MiMo-V2.6-Flash Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "gemini-3-pro": { + "id": "gemini-3-pro", + "name": "Gemini 3 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "nemotron-3-ultra-free": { + "id": "nemotron-3-ultra-free", + "name": "Nemotron 3 Ultra Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "claude-sonnet-4": { + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "muse-spark-1.2": { + "id": "muse-spark-1.2", + "name": "Muse Spark 1.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "gpt-5.4-mini": { + "id": "gpt-5.4-mini", + "name": "GPT-5.4 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "glm-4.7": { + "id": "glm-4.7", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.1 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "minimax-m3": { + "id": "minimax-m3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 512000, + "output": 128000 + } + }, + "gpt-5.6-luna": { + "id": "gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "qwen3.8-flash": { + "id": "qwen3.8-flash", + "name": "Qwen3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016, + "cache_write": 0.2 + }, + "limit": { + "context": 1000000, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-5.1-codex-max": { + "id": "gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "mimo-v2.5-free": { + "id": "mimo-v2.5-free", + "name": "MiMo V2.5 Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "grok-code": { + "id": "grok-code", + "name": "Grok Code Fast 1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "gpt-5.2": { + "id": "gpt-5.2", + "name": "GPT-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "claude-opus-4-8": { + "id": "claude-opus-4-8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-5.5": { + "id": "gpt-5.5", + "name": "GPT-5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "ling-2.6-flash-free": { + "id": "ling-2.6-flash-free", + "name": "Ling 2.6 Flash Free", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262100, + "output": 32800 + } + }, + "claude-sonnet-5": { + "id": "claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "deepseek-v4-flash-free": { + "id": "deepseek-v4-flash-free", + "name": "DeepSeek V4 Flash Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 200000, + "output": 128000 + } + }, + "hy3-free": { + "id": "hy3-free", + "name": "Hy3 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 190000, + "output": 64000 + } + }, + "nemotron-3.5-lightning-free": { + "id": "nemotron-3.5-lightning-free", + "name": "Nemotron 3.5 Lightning Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "claude-opus-4-6": { + "id": "claude-opus-4-6", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gemini-3.7-flash": { + "id": "gemini-3.7-flash", + "name": "Gemini 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "glm-5.2": { + "id": "glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k2": { + "id": "kimi-k2", + "name": "Kimi K2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2.5, + "cache_read": 0.4 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "glm-5.1": { + "id": "glm-5.1", + "name": "GLM-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "mimo-v2-omni-free": { + "id": "mimo-v2-omni-free", + "name": "MiMo V2 Omni Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 64000 + } + }, + "grok-build-0.1": { + "id": "grok-build-0.1", + "name": "Grok Build 0.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2, + "cache_read": 0.2 + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "ling-3.0-flash-free": { + "id": "ling-3.0-flash-free", + "name": "Ling-3.0-flash Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "gemini-3.8-flash": { + "id": "gemini-3.8-flash", + "name": "Gemini 3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "north-mini-code-free": { + "id": "north-mini-code-free", + "name": "North Mini Code Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 64000 + } + }, + "gpt-6-luna": { + "id": "gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "deepseek-v4-pro": { + "id": "deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.74, + "output": 3.84, + "cache_read": 0.145 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "claude-sonnet-4-6": { + "id": "claude-sonnet-4-6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "big-pickle": { + "id": "big-pickle", + "name": "Big Pickle", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "claude-sonnet-5-5": { + "id": "claude-sonnet-5-5", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "qwen3.6-plus": { + "id": "qwen3.6-plus", + "name": "Qwen3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625 + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-5.6-terra": { + "id": "gpt-5.6-terra", + "name": "GPT-5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "cache_write": 3.125, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "cache_write": 6.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "mimo-v2-flash-free": { + "id": "mimo-v2-flash-free", + "name": "MiMo V2 Flash Free", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "gpt-5.1-codex-mini": { + "id": "gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "glm-5.3": { + "id": "glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "claude-opus-4-7": { + "id": "claude-opus-4-7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "kimi-k2.7-code": { + "id": "kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "gpt-5": { + "id": "gpt-5", + "name": "GPT-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.07, + "output": 8.5, + "cache_read": 0.107 + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "grok-4.6": { + "id": "grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "gemini-3.1-pro": { + "id": "gemini-3.1-pro", + "name": "Gemini 3.1 Pro Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "provider": { + "npm": "@ai-sdk/google" + } + }, + "minimax-m2.1": { + "id": "minimax-m2.1", + "name": "MiniMax-M2.1", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.1 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "gpt-5.6-sol": { + "id": "gpt-5.6-sol", + "name": "GPT-5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "x-preview-f-free": { + "id": "x-preview-f-free", + "name": "Ox Alpha Free (Unlimited)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "muse-spark-1.3-contributor-free": { + "id": "muse-spark-1.3-contributor-free", + "name": "Muse Spark 1.3 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1048576, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "deepseek-v4-flash": { + "id": "deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.028 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "gpt-6-sol": { + "id": "gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + } + } + }, + "opencode-go": { + "id": "opencode-go", + "name": "OpenCode Go", + "env": ["OPENCODE_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://opencode.ai/zen/go/v1", + "models": { + "mimo-v2.6-pro": { + "id": "mimo-v2.6-pro", + "name": "MiMo-V2.6-Pro", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.003625 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "qwen3.7-max": { + "id": "qwen3.7-max", + "name": "Qwen3.7 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.5, + "cache_write": 3.125 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "mimo-v2.5": { + "id": "mimo-v2.5", + "name": "MiMo V2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "grok-4.7": { + "id": "grok-4.7", + "name": "Grok 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "longcat-2.5-preview-free": { + "id": "longcat-2.5-preview-free", + "name": "LongCat 2.5 Preview Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5.3-flash": { + "id": "glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen3.8-max": { + "id": "qwen3.8-max", + "name": "Qwen3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k3": { + "id": "kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "deepseek-v4.1-flash": { + "id": "deepseek-v4.1-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.003 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek-v4-flash-vision-exp": { + "id": "deepseek-v4-flash-vision-exp", + "name": "DeepSeek V4 Flash Vision Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.003 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "longcat-2.0": { + "id": "longcat-2.0", + "name": "LongCat-2.0", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.006 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "grok-4.5": { + "id": "grok-4.5", + "name": "Grok 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.3, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "minimax-m2.7": { + "id": "minimax-m2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "space-bunny-free": { + "id": "space-bunny-free", + "name": "Space Bunny Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1048576, + "output": 524288 + } + }, + "mimo-v2.5-pro": { + "id": "mimo-v2.5-pro", + "name": "MiMo V2.5 Pro", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.003625 + }, + "limit": { + "context": 1048576, + "output": 128000 + } + }, + "mimo-v2.6-flash": { + "id": "mimo-v2.6-flash", + "name": "MiMo-V2.6-Flash", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "minimax-m3": { + "id": "minimax-m3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "tiers": [ + { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12, + "tier": { + "type": "context", + "size": 512000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "gpt-5.6-luna": { + "id": "gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "qwen3.8-flash": { + "id": "qwen3.8-flash", + "name": "Qwen3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016, + "cache_write": 0.2 + }, + "limit": { + "context": 1000000, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/anthropic" + } + }, + "glm-5.2": { + "id": "glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "hy3": { + "id": "hy3", + "name": "Hy3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.58, + "cache_read": 0.035 + }, + "limit": { + "context": 256000, + "output": 128000 + } + }, + "muse-spark-1.2-contributor": { + "id": "muse-spark-1.2-contributor", + "name": "Muse Spark 1.2 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "gpt-6-luna": { + "id": "gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "deepseek-v4-pro": { + "id": "deepseek-v4-pro", + "name": "DeepSeek V4 Pro (New)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1.98, + "cache_read": 0.022 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "qwen3.6-plus": { + "id": "qwen3.6-plus", + "name": "Qwen3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "hy4-preview": { + "id": "hy4-preview", + "name": "Hy4 preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.834, + "output": 2.501, + "cache_read": 0.042 + }, + "limit": { + "context": 1024000, + "output": 64000 + } + }, + "muse-spark-1.3-contributor": { + "id": "muse-spark-1.3-contributor", + "name": "Muse Spark 1.3 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 131072 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "glm-5.3": { + "id": "glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "kimi-k2.7-code": { + "id": "kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "grok-4.6": { + "id": "grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + }, + "provider": { + "npm": "@ai-sdk/openai" + } + }, + "qwen3.7-plus": { + "id": "qwen3.7-plus", + "name": "Qwen3.7 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.04, + "cache_write": 0.5, + "tiers": [ + { + "input": 1.2, + "output": 4.8, + "cache_read": 0.12, + "cache_write": 1.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "deepseek-v4-flash": { + "id": "deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.003 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + } + } + }, + "openrouter": { + "id": "openrouter", + "name": "OpenRouter", + "env": ["OPENROUTER_API_KEY"], + "npm": "@openrouter/ai-sdk-provider", + "api": "https://openrouter.ai/api/v1", + "models": { + "sao10k/l3-lunaris-8b": { + "id": "sao10k/l3-lunaris-8b", + "name": "Llama 3 8B Lunaris", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.05 + }, + "limit": { + "context": 8192, + "output": 7372 + } + }, + "sao10k/l3.3-euryale-70b": { + "id": "sao10k/l3.3-euryale-70b", + "name": "Llama 3.3 Euryale 70B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.65, + "output": 0.75 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "sao10k/l3.1-euryale-70b": { + "id": "sao10k/l3.1-euryale-70b", + "name": "Llama 3.1 Euryale 70B v2.2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.85, + "output": 0.85 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "kwaipilot/kat-coder-pro-v2.5": { + "id": "kwaipilot/kat-coder-pro-v2.5", + "name": "KAT-Coder-Pro V2.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.74, + "output": 2.96, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "stealth/space-bunny-alpha": { + "id": "stealth/space-bunny-alpha", + "name": "Space Bunny Alpha", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 524288 + } + }, + "bytedance-seed/seed-1.6-flash": { + "id": "bytedance-seed/seed-1.6-flash", + "name": "Seed 1.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3, + "tiers": [ + { + "input": 0.1, + "output": 0.8, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "bytedance-seed/seed-2.0-lite": { + "id": "bytedance-seed/seed-2.0-lite", + "name": "Seed 2.0 Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "tiers": [ + { + "input": 0.5, + "output": 4, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "bytedance-seed/seed-2-1-turbo": { + "id": "bytedance-seed/seed-2-1-turbo", + "name": "Seed 2.1 Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 2.5 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "bytedance-seed/seed-2.0-mini": { + "id": "bytedance-seed/seed-2.0-mini", + "name": "Seed 2.0 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "tiers": [ + { + "input": 0.2, + "output": 0.8, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "bytedance-seed/seed-2.0-code": { + "id": "bytedance-seed/seed-2.0-code", + "name": "Seed 2.0 Code", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "tiers": [ + { + "input": 1, + "output": 6, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "bytedance-seed/seed-1.6": { + "id": "bytedance-seed/seed-1.6", + "name": "Seed 1.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "tiers": [ + { + "input": 0.5, + "output": 4, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "~moonshotai/kimi-latest": { + "id": "~moonshotai/kimi-latest", + "name": "Kimi Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3654, + "output": 9.1343, + "cache_read": 0.4 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "poolside/laguna-s-2.1:free": { + "id": "poolside/laguna-s-2.1:free", + "name": "Laguna S 2.1 (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "poolside/laguna-s-2.1": { + "id": "poolside/laguna-s-2.1", + "name": "Laguna S 2.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.18, + "cache_read": 0.009 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "poolside/laguna-xs-2.1:free": { + "id": "poolside/laguna-xs-2.1:free", + "name": "Laguna XS 2.1 (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "poolside/laguna-xs-2.1": { + "id": "poolside/laguna-xs-2.1", + "name": "Laguna XS 2.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.12, + "cache_read": 0.03 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "prism-ml/ternary-bonsai-2-27b": { + "id": "prism-ml/ternary-bonsai-2-27b", + "name": "Ternary Bonsai 2 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.5, + "cache_read": 0.0375 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "anthropic/claude-opus-4.1": { + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "anthropic/claude-opus-4.5": { + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic/claude-opus-4.6": { + "id": "anthropic/claude-opus-4.6", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-4.7": { + "id": "anthropic/claude-opus-4.7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-4.8": { + "id": "anthropic/claude-opus-4.8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-haiku-4.5": { + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic/claude-opus-5": { + "id": "anthropic/claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-5.5": { + "id": "anthropic/claude-sonnet-5.5", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-fable-5.1": { + "id": "anthropic/claude-fable-5.1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-4.5": { + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5 (latest)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "anthropic/claude-fable-5": { + "id": "anthropic/claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-4": { + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic/claude-sonnet-5": { + "id": "anthropic/claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-4.6": { + "id": "anthropic/claude-sonnet-4.6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-5.5": { + "id": "anthropic/claude-opus-5.5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "nex-agi/nex-n2.5-mini": { + "id": "nex-agi/nex-n2.5-mini", + "name": "Nex-N2.5-Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.025, + "output": 0.1, + "cache_read": 0.0025 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "nex-agi/nex-n2.5-pro": { + "id": "nex-agi/nex-n2.5-pro", + "name": "Nex-N2.5-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.25, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "cohere/command-r-08-2024": { + "id": "cohere/command-r-08-2024", + "name": "Command R", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 4000 + } + }, + "cohere/command-a-plus": { + "id": "cohere/command-a-plus", + "name": "Command A+", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.5, + "cache_read": 0.15 + }, + "limit": { + "context": 192000, + "output": 64000 + } + }, + "cohere/command-a": { + "id": "cohere/command-a", + "name": "Command A", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 256000, + "output": 8192 + } + }, + "cohere/north-mini-code:free": { + "id": "cohere/north-mini-code:free", + "name": "North Mini Code (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 64000 + } + }, + "cohere/command-r7b-12-2024": { + "id": "cohere/command-r7b-12-2024", + "name": "Command R7B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0375, + "output": 0.15 + }, + "limit": { + "context": 128000, + "output": 4000 + } + }, + "cohere/command-r-plus-08-2024": { + "id": "cohere/command-r-plus-08-2024", + "name": "Command R+", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 128000, + "output": 4000 + } + }, + "deepseek/deepseek-chat-v3.1": { + "id": "deepseek/deepseek-chat-v3.1", + "name": "DeepSeek V3.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.95, + "cache_read": 0.13 + }, + "limit": { + "context": 163840, + "output": 32768 + } + }, + "deepseek/deepseek-v4-flash-0731": { + "id": "deepseek/deepseek-v4-flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.01, + "output": 1.28, + "cache_read": 0.01 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "deepseek/deepseek-v4.1-flash": { + "id": "deepseek/deepseek-v4.1-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.0198, + "output": 0.396, + "cache_read": 0.00291 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "deepseek/deepseek-v4-flash-vision-exp": { + "id": "deepseek/deepseek-v4-flash-vision-exp", + "name": "DeepSeek V4 Flash Vision Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2156, + "output": 0.6468, + "cache_read": 0.00686 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "deepseek/deepseek-v3.1-terminus": { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1, + "cache_read": 0.135 + }, + "limit": { + "context": 163840, + "output": 65536 + } + }, + "deepseek/deepseek-chat": { + "id": "deepseek/deepseek-chat", + "name": "DeepSeek Chat", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2574, + "output": 1.0287 + }, + "limit": { + "context": 163840, + "output": 16000 + } + }, + "deepseek/deepseek-v4-pro-0813": { + "id": "deepseek/deepseek-v4-pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1.98, + "cache_read": 0.022 + }, + "limit": { + "context": 1048576, + "output": 393216 + } + }, + "deepseek/deepseek-v3.2-exp": { + "id": "deepseek/deepseek-v3.2-exp", + "name": "DeepSeek V3.2 Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 0.41 + }, + "limit": { + "context": 163840, + "output": 147456 + } + }, + "deepseek/deepseek-chat-v3-0324": { + "id": "deepseek/deepseek-chat-v3-0324", + "name": "DeepSeek V3 0324", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.29, + "output": 1.14, + "cache_read": 0.11 + }, + "limit": { + "context": 163840, + "output": 147456 + } + }, + "deepseek/deepseek-r1": { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek-R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.5 + }, + "limit": { + "context": 64000, + "output": 16000 + } + }, + "deepseek/deepseek-v4-pro": { + "id": "deepseek/deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "xhigh"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.783, + "output": 1.566, + "cache_read": 0.06525 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek/deepseek-r1-0528": { + "id": "deepseek/deepseek-r1-0528", + "name": "R1 0528", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 2.15, + "cache_read": 0.35 + }, + "limit": { + "context": 163840, + "output": 32768 + } + }, + "deepseek/deepseek-v3.2": { + "id": "deepseek/deepseek-v3.2", + "name": "DeepSeek V3.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 + }, + "limit": { + "context": 163840, + "output": 65536 + } + }, + "deepseek/deepseek-v4-flash": { + "id": "deepseek/deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "xhigh"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.028 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "unbiased/pareto": { + "id": "unbiased/pareto", + "name": "Pareto", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "tencent/hy3-preview": { + "id": "tencent/hy3-preview", + "name": "Hy3 preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.18, + "output": 0.6, + "cache_read": 0.06 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "tencent/hunyuan-a13b-instruct": { + "id": "tencent/hunyuan-a13b-instruct", + "name": "Hunyuan A13B Instruct", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.57 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "tencent/hy-mt2-30b-a3b": { + "id": "tencent/hy-mt2-30b-a3b", + "name": "Hy-MT2-30B-A3B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.074, + "output": 0.295 + }, + "limit": { + "context": 8192, + "output": 4096 + } + }, + "tencent/hy-mt2-1.8b": { + "id": "tencent/hy-mt2-1.8b", + "name": "Hy-MT2-1.8B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.044, + "output": 0.177 + }, + "limit": { + "context": 8192, + "output": 4096 + } + }, + "tencent/hy3": { + "id": "tencent/hy3", + "name": "Hy3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.132, + "output": 0.528, + "cache_read": 0.033 + }, + "limit": { + "context": 262144, + "output": 128000 + } + }, + "tencent/hy-mt2-7b": { + "id": "tencent/hy-mt2-7b", + "name": "Hy-MT2-7B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.074, + "output": 0.295 + }, + "limit": { + "context": 8192, + "output": 4096 + } + }, + "tencent/hy4-preview": { + "id": "tencent/hy4-preview", + "name": "Hy4 preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.834, + "output": 2.501, + "cache_read": 0.042 + }, + "limit": { + "context": 1048576, + "output": 64000 + } + }, + "anthracite-org/magnum-v4-72b": { + "id": "anthracite-org/magnum-v4-72b", + "name": "Magnum v4 72B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 5 + }, + "limit": { + "context": 32768, + "output": 4096 + } + }, + "meta-llama/llama-4-scout": { + "id": "meta-llama/llama-4-scout", + "name": "Llama 4 Scout", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 1310720, + "output": 16384 + } + }, + "meta-llama/llama-guard-4-12b": { + "id": "meta-llama/llama-guard-4-12b", + "name": "Llama Guard 4 12B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.18, + "output": 0.18 + }, + "limit": { + "context": 163840, + "output": 16384 + } + }, + "meta-llama/llama-4-maverick": { + "id": "meta-llama/llama-4-maverick", + "name": "Llama 4 Maverick", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1875, + "output": 0.6525 + }, + "limit": { + "context": 1048576, + "output": 16384 + } + }, + "meta-llama/llama-3.3-70b-instruct": { + "id": "meta-llama/llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.32 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "meta-llama/llama-3.1-8b-instruct": { + "id": "meta-llama/llama-3.1-8b-instruct", + "name": "Llama-3.1-8B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.08, + "cache_read": 0.025 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "meta-llama/llama-3.2-1b-instruct": { + "id": "meta-llama/llama-3.2-1b-instruct", + "name": "Llama 3.2 1B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.027, + "output": 0.201 + }, + "limit": { + "context": 60000, + "output": 54000 + } + }, + "meta-llama/llama-3.2-3b-instruct": { + "id": "meta-llama/llama-3.2-3b-instruct", + "name": "Llama 3.2 3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.33 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "meta-llama/llama-3.1-70b-instruct": { + "id": "meta-llama/llama-3.1-70b-instruct", + "name": "Llama-3.1-70B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 0.4 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "~google/gemini-flash-latest": { + "id": "~google/gemini-flash-latest", + "name": "Gemini Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075, + "cache_write": 0.041667 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "~google/gemini-pro-latest": { + "id": "~google/gemini-pro-latest", + "name": "Gemini Pro Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["audio", "pdf", "image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 0.375, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "perceptron/perceptron-mk1": { + "id": "perceptron/perceptron-mk1", + "name": "Perceptron Mk1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1.5 + }, + "limit": { + "context": 32768, + "output": 8192 + } + }, + "perceptron/perceptron-mk1.5": { + "id": "perceptron/perceptron-mk1.5", + "name": "Perceptron Mk1.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1.5 + }, + "limit": { + "context": 36864, + "output": 8192 + } + }, + "z-ai/glm-4.6v": { + "id": "z-ai/glm-4.6v", + "name": "GLM-4.6V", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9, + "cache_read": 0.055 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "z-ai/glm-4.5": { + "id": "z-ai/glm-4.5", + "name": "GLM-4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "z-ai/glm-5.3-prime": { + "id": "z-ai/glm-5.3-prime", + "name": "GLM 5.3 Prime", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.8, + "output": 8.8, + "cache_read": 0.56 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "z-ai/glm-5v-turbo": { + "id": "z-ai/glm-5v-turbo", + "name": "GLM-5V-Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "z-ai/glm-5.3-flash": { + "id": "z-ai/glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 943717 + } + }, + "z-ai/glm-4.6": { + "id": "z-ai/glm-4.6", + "name": "GLM-4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.43, + "output": 1.75, + "cache_read": 0.08 + }, + "limit": { + "context": 204800, + "output": 16384 + } + }, + "z-ai/glm-5": { + "id": "z-ai/glm-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.92, + "cache_read": 0.12 + }, + "limit": { + "context": 204800, + "output": 128000 + } + }, + "z-ai/glm-4.5v": { + "id": "z-ai/glm-4.5v", + "name": "GLM-4.5V", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.8, + "cache_read": 0.11 + }, + "limit": { + "context": 65536, + "output": 16384 + } + }, + "z-ai/glm-5.3-flashx": { + "id": "z-ai/glm-5.3-flashx", + "name": "GLM 5.3 FlashX", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.37, + "output": 1.25, + "cache_read": 0.09 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "z-ai/glm-4.7-flash": { + "id": "z-ai/glm-4.7-flash", + "name": "GLM-4.7-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0605, + "output": 0.4 + }, + "limit": { + "context": 200000, + "output": 117964 + } + }, + "z-ai/glm-4.7": { + "id": "z-ai/glm-4.7", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "z-ai/glm-5.2": { + "id": "z-ai/glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "xhigh"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.41, + "output": 3.99, + "cache_read": 0.26 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "z-ai/glm-5.1": { + "id": "z-ai/glm-5.1", + "name": "GLM-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "z-ai/glm-5-turbo": { + "id": "z-ai/glm-5-turbo", + "name": "GLM-5-Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "z-ai/glm-4.5-air": { + "id": "z-ai/glm-4.5-air", + "name": "GLM-4.5-Air", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.85, + "cache_read": 0.025 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "z-ai/glm-5.3": { + "id": "z-ai/glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1048576, + "output": 943717 + } + }, + "inference-net/schematron-v2-small": { + "id": "inference-net/schematron-v2-small", + "name": "Schematron V2 Small", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.23, + "cache_read": 0.05 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "inference-net/schematron-v2-turbo": { + "id": "inference-net/schematron-v2-turbo", + "name": "Schematron V2 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.15, + "cache_read": 0.03 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "thinkingmachines/inkling-small:free": { + "id": "thinkingmachines/inkling-small:free", + "name": "Inkling Small (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "thinkingmachines/inkling-small": { + "id": "thinkingmachines/inkling-small", + "name": "Inkling Small", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 1.2, + "cache_read": 0.1 + }, + "limit": { + "context": 524288, + "output": 262144 + } + }, + "thinkingmachines/inkling:free": { + "id": "thinkingmachines/inkling:free", + "name": "Inkling (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "thinkingmachines/inkling": { + "id": "thinkingmachines/inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 4.05, + "cache_read": 0.17 + }, + "limit": { + "context": 524288, + "output": 471859 + } + }, + "meituan/longcat-2.0": { + "id": "meituan/longcat-2.0", + "name": "LongCat 2.0", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.006 + }, + "limit": { + "context": 1048756, + "output": 262144 + } + }, + "openrouter/bodybuilder": { + "id": "openrouter/bodybuilder", + "name": "Body Builder (beta)", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "openrouter/free": { + "id": "openrouter/free", + "name": "Free Models Router", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 200000, + "output": 8000 + } + }, + "openrouter/pareto-code": { + "id": "openrouter/pareto-code", + "name": "Pareto Code Router", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 2000000, + "output": 200000 + } + }, + "openrouter/fusion": { + "id": "openrouter/fusion", + "name": "Fusion", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openrouter/auto": { + "id": "openrouter/auto", + "name": "Auto Router", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "pdf", "video"], + "output": ["text", "image"] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "perplexity/sonar-pro": { + "id": "perplexity/sonar-pro", + "name": "Sonar Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15 + }, + "limit": { + "context": 200000, + "output": 8000 + } + }, + "perplexity/sonar-deep-research": { + "id": "perplexity/sonar-deep-research", + "name": "Sonar Deep Research", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8 + }, + "limit": { + "context": 128000, + "output": 115200 + } + }, + "perplexity/sonar": { + "id": "perplexity/sonar", + "name": "Sonar", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 1 + }, + "limit": { + "context": 127072, + "output": 114364 + } + }, + "perplexity/sonar-reasoning-pro": { + "id": "perplexity/sonar-reasoning-pro", + "name": "Sonar Reasoning Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8 + }, + "limit": { + "context": 128000, + "output": 115200 + } + }, + "perplexity/sonar-pro-search": { + "id": "perplexity/sonar-pro-search", + "name": "Sonar Pro Search", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15 + }, + "limit": { + "context": 200000, + "output": 8000 + } + }, + "meta/muse-spark-1.3": { + "id": "meta/muse-spark-1.3", + "name": "Muse Spark 1.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "meta/muse-glimmer-30b": { + "id": "meta/muse-glimmer-30b", + "name": "Muse Glimmer 30B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 1.5, + "cache_read": 0.04 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "meta/muse-spark-1.1": { + "id": "meta/muse-spark-1.1", + "name": "Muse Spark 1.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf", "video"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "meta/muse-spark-1.2": { + "id": "meta/muse-spark-1.2", + "name": "Muse Spark 1.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "meta/muse-spark-1.2-contributor": { + "id": "meta/muse-spark-1.2-contributor", + "name": "Muse Spark 1.2 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "meta/muse-spark-1.3-contributor": { + "id": "meta/muse-spark-1.3-contributor", + "name": "Muse Spark 1.3 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "nousresearch/hermes-3-llama-3.1-70b": { + "id": "nousresearch/hermes-3-llama-3.1-70b", + "name": "Hermes 3 70B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 0.7 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "nousresearch/hermes-3-llama-3.1-405b": { + "id": "nousresearch/hermes-3-llama-3.1-405b", + "name": "Hermes 3 405B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 1 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "nousresearch/hermes-4-405b": { + "id": "nousresearch/hermes-4-405b", + "name": "Hermes 4 405B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "~z-ai/glm-flash-latest": { + "id": "~z-ai/glm-flash-latest", + "name": "GLM Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.02, + "output": 0.2475, + "cache_read": 0.01 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "~z-ai/glm-latest": { + "id": "~z-ai/glm-latest", + "name": "GLM Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 4, + "cache_read": 0.13 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "arcee-ai/trinity-large-thinking": { + "id": "arcee-ai/trinity-large-thinking", + "name": "Trinity Large Thinking", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.8, + "cache_read": 0.06 + }, + "limit": { + "context": 262144, + "output": 80000 + } + }, + "~openai/gpt-terra-latest": { + "id": "~openai/gpt-terra-latest", + "name": "GPT Terra Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "~openai/gpt-luna-latest": { + "id": "~openai/gpt-luna-latest", + "name": "GPT Luna Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "~openai/gpt-sol-latest": { + "id": "~openai/gpt-sol-latest", + "name": "GPT Sol Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "~openai/gpt-astra-latest": { + "id": "~openai/gpt-astra-latest", + "name": "GPT Astra Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "~openai/gpt-mini-latest": { + "id": "~openai/gpt-mini-latest", + "name": "GPT Mini Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "cognitivecomputations/dolphin-mistral-24b-venice-edition": { + "id": "cognitivecomputations/dolphin-mistral-24b-venice-edition", + "name": "Uncensored", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.9 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "thedrummer/skyfall-36b-v2": { + "id": "thedrummer/skyfall-36b-v2", + "name": "Skyfall 36B V2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.55, + "output": 0.8, + "cache_read": 0.25 + }, + "limit": { + "context": 32768, + "output": 29491 + } + }, + "thedrummer/unslopnemo-12b": { + "id": "thedrummer/unslopnemo-12b", + "name": "UnslopNemo 12B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 0.4 + }, + "limit": { + "context": 1024000, + "output": 819200 + } + }, + "thedrummer/cydonia-24b-v4.1": { + "id": "thedrummer/cydonia-24b-v4.1", + "name": "Cydonia 24B V4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.15 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "baidu/ernie-4.5-vl-424b-a47b": { + "id": "baidu/ernie-4.5-vl-424b-a47b", + "name": "ERNIE 4.5 VL 424B A47B ", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.42, + "output": 1.25 + }, + "limit": { + "context": 123000, + "output": 16000 + } + }, + "x-ai/grok-4.20-multi-agent": { + "id": "x-ai/grok-4.20-multi-agent", + "name": "Grok 4.20 Multi-Agent", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 1800000 + } + }, + "x-ai/grok-4.7": { + "id": "x-ai/grok-4.7", + "name": "Grok 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 450000 + } + }, + "x-ai/grok-4.3": { + "id": "x-ai/grok-4.3", + "name": "Grok 4.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 900000 + } + }, + "x-ai/grok-4.5": { + "id": "x-ai/grok-4.5", + "name": "Grok 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.3, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 450000 + } + }, + "x-ai/grok-build-0.1": { + "id": "x-ai/grok-build-0.1", + "name": "Grok Build 0.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 4, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 256000, + "output": 230400 + } + }, + "x-ai/grok-4.20": { + "id": "x-ai/grok-4.20", + "name": "Grok 4.20", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 1800000 + } + }, + "x-ai/grok-4.6": { + "id": "x-ai/grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 450000 + } + }, + "~anthropic/claude-opus-latest": { + "id": "~anthropic/claude-opus-latest", + "name": "Claude Opus Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "~anthropic/claude-haiku-latest": { + "id": "~anthropic/claude-haiku-latest", + "name": "Claude Haiku Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "~anthropic/claude-sonnet-latest": { + "id": "~anthropic/claude-sonnet-latest", + "name": "Claude Sonnet Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "~anthropic/claude-fable-latest": { + "id": "~anthropic/claude-fable-latest", + "name": "Claude Fable Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "upstage/solar-pro-3": { + "id": "upstage/solar-pro-3", + "name": "Solar Pro 3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "upstage/solar-pro4": { + "id": "upstage/solar-pro4", + "name": "Solar Pro 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.36, + "cache_read": 0.018 + }, + "limit": { + "context": 524288, + "output": 131072 + } + }, + "upstage/solar-mini4": { + "id": "upstage/solar-mini4", + "name": "Solar Mini 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2, + "cache_read": 0.005 + }, + "limit": { + "context": 524288, + "output": 131072 + } + }, + "~deepseek/deepseek-flash-latest": { + "id": "~deepseek/deepseek-flash-latest", + "name": "DeepSeek Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.0198, + "output": 0.396, + "cache_read": 0.00291 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "~deepseek/deepseek-pro-latest": { + "id": "~deepseek/deepseek-pro-latest", + "name": "DeepSeek Pro Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.123, + "output": 3.5, + "cache_read": 0.123 + }, + "limit": { + "context": 1048576, + "output": 393216 + } + }, + "~deepseek/deepseek-v4-flash-latest": { + "id": "~deepseek/deepseek-v4-flash-latest", + "name": "DeepSeek V4 Flash Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0099, + "output": 0.13068, + "cache_read": 0.001386 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "~x-ai/grok-latest": { + "id": "~x-ai/grok-latest", + "name": "Grok Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 450000 + } + }, + "bytedance/ui-tars-1.5-7b": { + "id": "bytedance/ui-tars-1.5-7b", + "name": "UI-TARS 7B ", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.1 + }, + "limit": { + "context": 128000, + "output": 2048 + } + }, + "liquid/lfm-2.5-2.6b:free": { + "id": "liquid/lfm-2.5-2.6b:free", + "name": "LFM2.5-2.6B (free)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 65536, + "output": 8192 + } + }, + "google/gemma-4-31b-it": { + "id": "google/gemma-4-31b-it", + "name": "Gemma 4 31B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.34, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "google/gemini-3.1-flash-image-preview": { + "id": "google/gemini-3.1-flash-image-preview", + "name": "Nano Banana 2 Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 3 + }, + "limit": { + "context": 65536, + "output": 58982 + } + }, + "google/lyria-3-pro-preview": { + "id": "google/lyria-3-pro-preview", + "name": "Lyria 3 Pro Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemma-3-27b-it": { + "id": "google/gemma-3-27b-it", + "name": "Gemma 3 27B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.08, + "output": 0.45, + "cache_read": 0.04 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "google/gemma-4-31b-it:free": { + "id": "google/gemma-4-31b-it:free", + "name": "Gemma 4 31B (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "google/gemini-2.5-flash-image": { + "id": "google/gemini-2.5-flash-image", + "name": "Nano Banana", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "cache_write": 0.083333 + }, + "limit": { + "context": 32768, + "output": 8192 + } + }, + "google/gemma-4-26b-a4b-it:free": { + "id": "google/gemma-4-26b-a4b-it:free", + "name": "Gemma 4 26B A4B (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "google/gemma-2-27b-it": { + "id": "google/gemma-2-27b-it", + "name": "Gemma 2 27B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.65, + "output": 0.65 + }, + "limit": { + "context": 8192, + "output": 2048 + } + }, + "google/gemini-3.6-flash": { + "id": "google/gemini-3.6-flash", + "name": "Gemini 3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075, + "cache_write": 0.041667 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemma-4-26b-a4b-it": { + "id": "google/gemma-4-26b-a4b-it", + "name": "Gemma 4 26B A4B IT", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.3, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "google/gemini-3-pro-image-preview": { + "id": "google/gemini-3-pro-image-preview", + "name": "Nano Banana Pro Preview", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 0.375 + }, + "limit": { + "context": 65536, + "output": 32768 + } + }, + "google/gemini-3.5-flash-lite": { + "id": "google/gemini-3.5-flash-lite", + "name": "Gemini 3.5 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3.1-flash-image": { + "id": "google/gemini-3.1-flash-image", + "name": "Nano Banana 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 3 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "google/lyria-3-clip-preview": { + "id": "google/lyria-3-clip-preview", + "name": "Lyria 3 Clip Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3.1-pro-preview": { + "id": "google/gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 0.375, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemma-3-12b-it": { + "id": "google/gemma-3-12b-it", + "name": "Gemma 3 12B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.15 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "google/gemini-3.5-flash": { + "id": "google/gemini-3.5-flash", + "name": "Gemini 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-2.5-pro": { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 128, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "cache_write": 0.375, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3-pro-image": { + "id": "google/gemini-3-pro-image", + "name": "Nano Banana Pro", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 0.375 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "google/gemini-2.5-flash": { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65535 + } + }, + "google/gemini-3.1-flash-lite-image": { + "id": "google/gemini-3.1-flash-lite-image", + "name": "Nano Banana 2 Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.25, + "output": 1.5 + }, + "limit": { + "context": 65536, + "output": 58982 + } + }, + "google/gemini-3.7-flash": { + "id": "google/gemini-3.7-flash", + "name": "Gemini 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075, + "cache_write": 0.041667 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3.1-pro-preview-customtools": { + "id": "google/gemini-3.1-pro-preview-customtools", + "name": "Gemini 3.1 Pro Preview Custom Tools", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 0.375, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3-flash-preview": { + "id": "google/gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3.8-flash": { + "id": "google/gemini-3.8-flash", + "name": "Gemini 3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075, + "cache_write": 0.041667 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemma-3-4b-it": { + "id": "google/gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.1 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "google/gemini-2.5-flash-lite": { + "id": "google/gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash-Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65535 + } + }, + "google/gemini-2.5-pro-preview": { + "id": "google/gemini-2.5-pro-preview", + "name": "Gemini 2.5 Pro Preview 06-05", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 128, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["pdf", "image", "text", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "cache_write": 0.375, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3.1-flash-lite-preview": { + "id": "google/gemini-3.1-flash-lite-preview", + "name": "Gemini 3.1 Flash Lite Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-3.1-flash-lite": { + "id": "google/gemini-3.1-flash-lite", + "name": "Gemini 3.1 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 0.083333 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "writer/palmyra-x5": { + "id": "writer/palmyra-x5", + "name": "Palmyra X5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 6 + }, + "limit": { + "context": 1040000, + "output": 8192 + } + }, + "ibm-granite/granite-4.0-h-micro": { + "id": "ibm-granite/granite-4.0-h-micro", + "name": "Granite 4.0 Micro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.017, + "output": 0.112 + }, + "limit": { + "context": 131000, + "output": 117900 + } + }, + "ibm-granite/granite-4.2-8b": { + "id": "ibm-granite/granite-4.2-8b", + "name": "Granite 4.2 8B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.25, + "cache_read": 0.015 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "fireworks/ember-1": { + "id": "fireworks/ember-1", + "name": "Ember-1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "mistralai/mistral-nemo": { + "id": "mistralai/mistral-nemo", + "name": "Mistral Nemo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.019, + "output": 0.03 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "mistralai/ministral-8b-2512": { + "id": "mistralai/ministral-8b-2512", + "name": "Ministral 3 8B 2512", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.15, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 209715 + } + }, + "mistralai/mistral-small-24b-instruct-2501": { + "id": "mistralai/mistral-small-24b-instruct-2501", + "name": "Mistral Small 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.08 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "mistralai/devstral-2512": { + "id": "mistralai/devstral-2512", + "name": "Devstral 2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.04 + }, + "limit": { + "context": 262144, + "output": 209715 + } + }, + "mistralai/mistral-saba": { + "id": "mistralai/mistral-saba", + "name": "Saba", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.6, + "cache_read": 0.02 + }, + "limit": { + "context": 32768, + "output": 26214 + } + }, + "mistralai/mistral-medium-3-5": { + "id": "mistralai/mistral-medium-3-5", + "name": "Mistral Medium 3.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5 + }, + "limit": { + "context": 262144, + "output": 209715 + } + }, + "mistralai/mistral-medium-3.1": { + "id": "mistralai/mistral-medium-3.1", + "name": "Mistral Medium 3.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.04 + }, + "limit": { + "context": 131072, + "output": 104857 + } + }, + "mistralai/mistral-small-3.2-24b-instruct": { + "id": "mistralai/mistral-small-3.2-24b-instruct", + "name": "Mistral Small 3.2 24B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.09375, + "output": 0.25 + }, + "limit": { + "context": 256000, + "output": 16384 + } + }, + "mistralai/mistral-large": { + "id": "mistralai/mistral-large", + "name": "Mistral Large", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2 + }, + "limit": { + "context": 128000, + "output": 102400 + } + }, + "mistralai/mistral-small-2603": { + "id": "mistralai/mistral-small-2603", + "name": "Mistral Small 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 209715 + } + }, + "mistralai/mistral-medium-3": { + "id": "mistralai/mistral-medium-3", + "name": "Mistral Medium 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.04 + }, + "limit": { + "context": 131072, + "output": 104857 + } + }, + "mistralai/voxtral-small-24b-2507": { + "id": "mistralai/voxtral-small-24b-2507", + "name": "Voxtral Small 24B 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.01 + }, + "limit": { + "context": 32768, + "output": 26214 + } + }, + "mistralai/mistral-large-2512": { + "id": "mistralai/mistral-large-2512", + "name": "Mistral Large 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 209715 + } + }, + "mistralai/mistral-large-2407": { + "id": "mistralai/mistral-large-2407", + "name": "Mistral Large 2407", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2 + }, + "limit": { + "context": 131072, + "output": 104857 + } + }, + "mistralai/ministral-14b-2512": { + "id": "mistralai/ministral-14b-2512", + "name": "Ministral 3 14B 2512", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.2, + "cache_read": 0.02 + }, + "limit": { + "context": 262144, + "output": 209715 + } + }, + "mistralai/mistral-small-3.1-24b-instruct": { + "id": "mistralai/mistral-small-3.1-24b-instruct", + "name": "Mistral Small 3.1 24B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.351, + "output": 0.555 + }, + "limit": { + "context": 128000, + "output": 102400 + } + }, + "mistralai/ministral-3b-2512": { + "id": "mistralai/ministral-3b-2512", + "name": "Ministral 3 3B 2512", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.1, + "cache_read": 0.01 + }, + "limit": { + "context": 131072, + "output": 104857 + } + }, + "mistralai/mixtral-8x22b-instruct": { + "id": "mistralai/mixtral-8x22b-instruct", + "name": "Mixtral 8x22B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2 + }, + "limit": { + "context": 65536, + "output": 52428 + } + }, + "mistralai/codestral-2508": { + "id": "mistralai/codestral-2508", + "name": "Codestral 2508", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9, + "cache_read": 0.03 + }, + "limit": { + "context": 256000, + "output": 204800 + } + }, + "sakana/fugu-max": { + "id": "sakana/fugu-max", + "name": "Fugu Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "sakana/fugu-ultra-v2": { + "id": "sakana/fugu-ultra-v2", + "name": "Fugu Ultra v2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "sakana/fugu-ultra": { + "id": "sakana/fugu-ultra", + "name": "Fugu Ultra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "sakana/sakana-namazu": { + "id": "sakana/sakana-namazu", + "name": "Sakana Namazu", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "inclusionai/ling-3.0-flash-sante:free": { + "id": "inclusionai/ling-3.0-flash-sante:free", + "name": "Ling 3.0 Flash Sante (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "inclusionai/ling-3.0-flash": { + "id": "inclusionai/ling-3.0-flash", + "name": "Ling 3.0 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.021, + "output": 0.063, + "cache_read": 0.0042 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "inclusionai/ling-3.0-flash-vl": { + "id": "inclusionai/ling-3.0-flash-vl", + "name": "Ling 3.0 Flash VL", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.021, + "output": 0.0616, + "cache_read": 0.0042 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "inclusionai/ling-3.0-flash-fin": { + "id": "inclusionai/ling-3.0-flash-fin", + "name": "Ling 3.0 Flash Fin", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.18, + "cache_read": 0.012 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "moonshotai/kimi-k3": { + "id": "moonshotai/kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 943718 + } + }, + "moonshotai/kimi-k2.6": { + "id": "moonshotai/kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.65, + "output": 3.41, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "moonshotai/kimi-k2-thinking": { + "id": "moonshotai/kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 98304 + } + }, + "moonshotai/kimi-k2.5": { + "id": "moonshotai/kimi-k2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 2.25, + "cache_read": 0.07 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "moonshotai/kimi-k2-0905": { + "id": "moonshotai/kimi-k2-0905", + "name": "Kimi K2 0905", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.5 + }, + "limit": { + "context": 262144, + "output": 98304 + } + }, + "moonshotai/kimi-k2": { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2 0711", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.57, + "output": 2.3 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "moonshotai/kimi-k2.7-code": { + "id": "moonshotai/kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6712, + "output": 3.35, + "cache_read": 0.18 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "rekaai/reka-flash-3": { + "id": "rekaai/reka-flash-3", + "name": "Reka Flash 3", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2 + }, + "limit": { + "context": 65536, + "output": 58982 + } + }, + "rekaai/reka-edge": { + "id": "rekaai/reka-edge", + "name": "Reka Edge", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 16384, + "output": 14745 + } + }, + "nvidia/nemotron-3-nano-30b-a3b": { + "id": "nvidia/nemotron-3-nano-30b-a3b", + "name": "Nemotron 3 Nano 30B A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2, + "cache_read": 0.03 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "nvidia/nemotron-3.5-content-safety:free": { + "id": "nvidia/nemotron-3.5-content-safety:free", + "name": "Nemotron 3.5 Content Safety (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "nvidia/nemotron-3.5-lightning": { + "id": "nvidia/nemotron-3.5-lightning", + "name": "Nemotron 3.5 Lightning 30B A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.16, + "cache_read": 0.03 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free": { + "id": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", + "name": "Nemotron 3 Nano Omni (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 65536 + } + }, + "nvidia/nemotron-3-super-120b-a12b": { + "id": "nvidia/nemotron-3-super-120b-a12b", + "name": "Nemotron 3 Super 120B A12B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.08, + "output": 0.45 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "nvidia/nemotron-3-ultra-550b-a55b:free": { + "id": "nvidia/nemotron-3-ultra-550b-a55b:free", + "name": "Nemotron 3 Ultra (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["medium", "high"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "nvidia/nemotron-3-ultra-550b-a55b": { + "id": "nvidia/nemotron-3-ultra-550b-a55b", + "name": "Nemotron 3 Ultra 550B A55B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["medium", "high"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12 + }, + "limit": { + "context": 262144, + "output": 182520 + } + }, + "nvidia/nemotron-3-super-120b-a12b:free": { + "id": "nvidia/nemotron-3-super-120b-a12b:free", + "name": "Nemotron 3 Super (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "nvidia/nemotron-3.5-content-safety": { + "id": "nvidia/nemotron-3.5-content-safety", + "name": "Nemotron 3.5 Content Safety", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.2 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "nvidia/nemotron-3.5-lightning:free": { + "id": "nvidia/nemotron-3.5-lightning:free", + "name": "Nemotron 3.5 Lightning (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "xiaomi/mimo-v2.6-pro": { + "id": "xiaomi/mimo-v2.6-pro", + "name": "MiMo-V2.6-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1050000, + "output": 131072 + } + }, + "xiaomi/mimo-v2.5": { + "id": "xiaomi/mimo-v2.5", + "name": "MiMo-V2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1050000, + "output": 131072 + } + }, + "xiaomi/mimo-v2.6-pro-ultraspeed": { + "id": "xiaomi/mimo-v2.6-pro-ultraspeed", + "name": "MiMo-V2.6-Pro-UltraSpeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 4.35, + "output": 8.7, + "cache_read": 0.036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "xiaomi/mimo-v2.5-pro": { + "id": "xiaomi/mimo-v2.5-pro", + "name": "MiMo-V2.5-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1050000, + "output": 131072 + } + }, + "xiaomi/mimo-v2.6-flash": { + "id": "xiaomi/mimo-v2.6-flash", + "name": "MiMo-V2.6-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1050000, + "output": 131072 + } + }, + "undi95/remm-slerp-l2-13b": { + "id": "undi95/remm-slerp-l2-13b", + "name": "ReMM SLERP 13B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 0.65 + }, + "limit": { + "context": 6144, + "output": 5529 + } + }, + "gryphe/mythomax-l2-13b": { + "id": "gryphe/mythomax-l2-13b", + "name": "MythoMax 13B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.08, + "output": 0.11 + }, + "limit": { + "context": 8192, + "output": 3686 + } + }, + "minimax/minimax-m2.5": { + "id": "minimax/minimax-m2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 1.08, + "cache_read": 0.027 + }, + "limit": { + "context": 204800, + "output": 128000 + } + }, + "minimax/minimax-01": { + "id": "minimax/minimax-01", + "name": "MiniMax-01", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.1 + }, + "limit": { + "context": 1000192, + "output": 40000 + } + }, + "minimax/minimax-m2-her": { + "id": "minimax/minimax-m2-her", + "name": "MiniMax-M2 Her", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03 + }, + "limit": { + "context": 65536, + "output": 2048 + } + }, + "minimax/minimax-m2.7": { + "id": "minimax/minimax-m2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.21, + "output": 0.84, + "cache_read": 0.042 + }, + "limit": { + "context": 204800, + "output": 176947 + } + }, + "minimax/minimax-m1": { + "id": "minimax/minimax-m1", + "name": "MiniMax M1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2.2 + }, + "limit": { + "context": 1000000, + "output": 40000 + } + }, + "minimax/minimax-m3": { + "id": "minimax/minimax-m3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 1048576, + "output": 512000 + } + }, + "minimax/minimax-m2.1": { + "id": "minimax/minimax-m2.1", + "name": "MiniMax-M2.1", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "minimax/minimax-m2": { + "id": "minimax/minimax-m2", + "name": "MiniMax-M2", + "reasoning": true, + "reasoning_options": [], + "interleaved": { + "field": "reasoning_details" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2 + }, + "limit": { + "context": 204800, + "output": 176947 + } + }, + "mancer/weaver": { + "id": "mancer/weaver", + "name": "Weaver (alpha)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 0.75 + }, + "limit": { + "context": 8000, + "output": 6000 + } + }, + "stepfun/step-3.5-flash": { + "id": "stepfun/step-3.5-flash", + "name": "Step 3.5 Flash", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.3 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "stepfun/step-3.7-flash": { + "id": "stepfun/step-3.7-flash", + "name": "Step 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.15, + "cache_read": 0.04 + }, + "limit": { + "context": 262144, + "output": 230400 + } + }, + "dots-studio/dots-3-note-preview:free": { + "id": "dots-studio/dots-3-note-preview:free", + "name": "Dots3-Note Preview (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 512000, + "output": 460800 + } + }, + "inception/mercury-2.5": { + "id": "inception/mercury-2.5", + "name": "Mercury 2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.15, + "cache_read": 0.004 + }, + "limit": { + "context": 260000, + "output": 65536 + } + }, + "inception/mercury-2": { + "id": "inception/mercury-2", + "name": "Mercury 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.75, + "cache_read": 0.025 + }, + "limit": { + "context": 128000, + "output": 50000 + } + }, + "amazon/nova-lite-v1": { + "id": "amazon/nova-lite-v1", + "name": "Nova Lite 1.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.24 + }, + "limit": { + "context": 300000, + "output": 5120 + } + }, + "amazon/nova-2-lite-v1": { + "id": "amazon/nova-2-lite-v1", + "name": "Nova 2 Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "amazon/nova-pro-v1": { + "id": "amazon/nova-pro-v1", + "name": "Nova Pro 1.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 3.2 + }, + "limit": { + "context": 300000, + "output": 5120 + } + }, + "amazon/nova-premier-v1": { + "id": "amazon/nova-premier-v1", + "name": "Nova Premier 1.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 12.5, + "cache_read": 0.625 + }, + "limit": { + "context": 1000000, + "output": 32000 + } + }, + "amazon/nova-micro-v1": { + "id": "amazon/nova-micro-v1", + "name": "Nova Micro 1.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.035, + "output": 0.14 + }, + "limit": { + "context": 128000, + "output": 5120 + } + }, + "relace/relace-search": { + "id": "relace/relace-search", + "name": "Relace Search", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3 + }, + "limit": { + "context": 256000, + "output": 128000 + } + }, + "relace/relace-apply-3": { + "id": "relace/relace-apply-3", + "name": "Relace Apply 3", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.85, + "output": 1.25 + }, + "limit": { + "context": 256000, + "output": 128000 + } + }, + "aion-labs/aion-2.0": { + "id": "aion-labs/aion-2.0", + "name": "Aion-2.0", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 1.6, + "cache_read": 0.2 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "aion-labs/aion-rp-llama-3.1-8b": { + "id": "aion-labs/aion-rp-llama-3.1-8b", + "name": "Aion-RP 1.0 (8B)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 1.6 + }, + "limit": { + "context": 32768, + "output": 29491 + } + }, + "aion-labs/aion-3.0": { + "id": "aion-labs/aion-3.0", + "name": "Aion-3.0", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 6, + "cache_read": 0.75 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "aion-labs/aion-3.5": { + "id": "aion-labs/aion-3.5", + "name": "Aion 3.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 6, + "cache_read": 0.75 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "aion-labs/aion-3.5-mini": { + "id": "aion-labs/aion-3.5-mini", + "name": "Aion 3.5 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 1.4, + "cache_read": 0.18 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "aion-labs/aion-3.0-mini": { + "id": "aion-labs/aion-3.0-mini", + "name": "Aion-3.0-Mini", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 1.4, + "cache_read": 0.18 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen/qwen3-235b-a22b-2507": { + "id": "qwen/qwen3-235b-a22b-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.0875, + "output": 0.35, + "cache_read": 0.0175 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + "id": "qwen/qwen3-vl-235b-a22b-instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.21, + "output": 1.9, + "cache_read": 0.1 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen/qwen3.7-max": { + "id": "qwen/qwen3.7-max", + "name": "Qwen3.7 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.475, + "output": 4.425, + "cache_read": 0.295, + "cache_write": 1.84375 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen/qwen3.8-27b": { + "id": "qwen/qwen3.8-27b", + "name": "Qwen3.8 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.0249, + "output": 4.35, + "cache_read": 0.0199 + }, + "limit": { + "context": 1000000, + "output": 235929 + } + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + "id": "qwen/qwen3-vl-235b-a22b-thinking", + "name": "Qwen3 VL 235B A22B Thinking", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 4 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen/qwen3.8-2.4t-a95b": { + "id": "qwen/qwen3.8-2.4t-a95b", + "name": "Qwen3.8 2.4T A95B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "qwen/qwen3.5-27b": { + "id": "qwen/qwen3.5-27b", + "name": "Qwen3.5 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.195, + "output": 1.56 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3-next-80b-a3b-thinking": { + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen3-Next 80B-A3B (Thinking)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1.2 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3-coder-next": { + "id": "qwen/qwen3-coder-next", + "name": "Qwen3 Coder Next", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.12, + "output": 0.8, + "cache_read": 0.07 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3-coder": { + "id": "qwen/qwen3-coder", + "name": "Qwen3 Coder 480B A35B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1, + "cache_read": 0.1 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3-32b": { + "id": "qwen/qwen3-32b", + "name": "Qwen3 32B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.08, + "output": 0.28 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen/qwen-plus": { + "id": "qwen/qwen-plus", + "name": "Qwen Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.26, + "output": 0.78, + "cache_read": 0.052, + "cache_write": 0.325, + "tiers": [ + { + "input": 0.78, + "output": 2.34, + "cache_read": 0.156, + "cache_write": 0.975, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen/qwen3.7-flash": { + "id": "qwen/qwen3.7-flash", + "name": "Qwen3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.13, + "cache_read": 0.006, + "cache_write": 0.038, + "tiers": [ + { + "input": 0.1, + "output": 0.4, + "cache_read": 0.02, + "cache_write": 0.125, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 0.2, + "output": 0.8, + "cache_read": 0.04, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen3-max": { + "id": "qwen/qwen3-max", + "name": "Qwen3 Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.78, + "output": 3.9, + "cache_read": 0.156, + "cache_write": 0.975, + "tiers": [ + { + "input": 1.56, + "output": 7.8, + "cache_read": 0.312, + "cache_write": 1.95, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 1.95, + "output": 9.75, + "cache_read": 0.39, + "cache_write": 2.4375, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + "id": "qwen/qwen3-coder-30b-a3b-instruct", + "name": "Qwen3-Coder 30B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.28 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3.8-omni-flash": { + "id": "qwen/qwen3.8-omni-flash", + "name": "Qwen3.8 Omni Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + "id": "qwen/qwen3-vl-30b-a3b-instruct", + "name": "Qwen3 VL 30B A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.23, + "output": 2.3 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "qwen/qwen3-235b-a22b": { + "id": "qwen/qwen3-235b-a22b", + "name": "Qwen3 235B-A22B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.455, + "output": 1.82 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen/qwen3.5-122b-a10b": { + "id": "qwen/qwen3.5-122b-a10b", + "name": "Qwen3.5 122B-A10B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.26, + "output": 2.08 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen-plus-2025-07-28": { + "id": "qwen/qwen-plus-2025-07-28", + "name": "Qwen Plus 0728", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.26, + "output": 0.78, + "tiers": [ + { + "input": 0.78, + "output": 2.34, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 32768 + } + }, + "qwen/qwen3.6-35b-a3b": { + "id": "qwen/qwen3.6-35b-a3b", + "name": "Qwen3.6 35B-A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3-next-80b-a3b-instruct": { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen3-Next 80B-A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 1.1, + "cache_read": 0.07 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + "id": "qwen/qwen3-vl-30b-a3b-thinking", + "name": "Qwen3 VL 30B A3B Thinking", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 2.4 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen/qwen3.6-flash": { + "id": "qwen/qwen3.6-flash", + "name": "Qwen3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1875, + "output": 1.125, + "cache_write": 0.234375, + "tiers": [ + { + "input": 0.75, + "output": 3, + "cache_write": 0.9375, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen3-coder-flash": { + "id": "qwen/qwen3-coder-flash", + "name": "Qwen3 Coder Flash", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.195, + "output": 0.975, + "cache_read": 0.039, + "cache_write": 0.24375, + "tiers": [ + { + "input": 0.325, + "output": 1.625, + "cache_read": 0.065, + "cache_write": 0.40625, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 0.52, + "output": 2.6, + "cache_read": 0.104, + "cache_write": 0.65, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen-2.5-coder-32b-instruct": { + "id": "qwen/qwen-2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1 + }, + "limit": { + "context": 32768, + "output": 29491 + } + }, + "qwen/qwen3.5-flash-02-23": { + "id": "qwen/qwen3.5-flash-02-23", + "name": "Qwen3.5-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.065, + "output": 0.26 + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen3-max-thinking": { + "id": "qwen/qwen3-max-thinking", + "name": "Qwen3 Max Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.78, + "output": 3.9, + "tiers": [ + { + "input": 1.56, + "output": 7.8, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 1.95, + "output": 9.75, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3-coder-plus": { + "id": "qwen/qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.65, + "output": 3.25, + "cache_read": 0.13, + "cache_write": 0.8125, + "tiers": [ + { + "input": 1.17, + "output": 5.85, + "cache_read": 0.234, + "cache_write": 1.4625, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 1.95, + "output": 9.75, + "cache_read": 0.39, + "cache_write": 2.4375, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen3.5-9b": { + "id": "qwen/qwen3.5-9b", + "name": "Qwen3.5 9B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.15 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen/qwen3.8-max-prime": { + "id": "qwen/qwen3.8-max-prime", + "name": "Qwen 3.8 Max Prime", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 12, + "cache_read": 0.5 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen/qwen3.5-plus-20260420": { + "id": "qwen/qwen3.5-plus-20260420", + "name": "Qwen3.5 Plus 2026-04-20", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.8, + "cache_write": 0.375, + "tiers": [ + { + "input": 0.375, + "output": 2.25, + "cache_write": 0.46875, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen3.8-flash": { + "id": "qwen/qwen3.8-flash", + "name": "Qwen3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016, + "cache_write": 0.2 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen/qwen3.5-35b-a3b": { + "id": "qwen/qwen3.5-35b-a3b", + "name": "Qwen3.5 35B-A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.1625, + "output": 1.3 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3.6-max-preview": { + "id": "qwen/qwen3.6-max-preview", + "name": "Qwen3.6 Max Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.027, + "output": 6.162, + "cache_write": 1.28375, + "tiers": [ + { + "input": 1.58, + "output": 9.48, + "cache_write": 1.975, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "qwen/qwen3-30b-a3b": { + "id": "qwen/qwen3-30b-a3b", + "name": "Qwen3 30B A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.52 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen/qwen3.5-397b-a17b": { + "id": "qwen/qwen3.5-397b-a17b", + "name": "Qwen3.5 397B-A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.55, + "output": 3.5, + "cache_read": 0.225 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3-8b": { + "id": "qwen/qwen3-8b", + "name": "Qwen3 8B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.117, + "output": 0.455 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "qwen/qwen3-vl-32b-instruct": { + "id": "qwen/qwen3-vl-32b-instruct", + "name": "Qwen3 VL 32B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.104, + "output": 0.416 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen/qwen3-vl-8b-instruct": { + "id": "qwen/qwen3-vl-8b-instruct", + "name": "Qwen3 VL 8B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.117, + "output": 0.455 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + "id": "qwen/qwen3-30b-a3b-instruct-2507", + "name": "Qwen3 30B A3B Instruct 2507", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04815, + "output": 0.19305 + }, + "limit": { + "context": 262144, + "output": 32000 + } + }, + "qwen/qwen2.5-vl-72b-instruct": { + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen2.5 VL 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 1, + "cache_read": 0.4 + }, + "limit": { + "context": 128000, + "output": 115200 + } + }, + "qwen/qwen-2.5-7b-instruct": { + "id": "qwen/qwen-2.5-7b-instruct", + "name": "Qwen2.5 7B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2 + }, + "limit": { + "context": 32768, + "output": 29491 + } + }, + "qwen/qwen3.5-plus-02-15": { + "id": "qwen/qwen3.5-plus-02-15", + "name": "Qwen3.5 Plus 2026-02-15", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.26, + "output": 1.56, + "tiers": [ + { + "input": 0.325, + "output": 1.95, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen-2.5-72b-instruct": { + "id": "qwen/qwen-2.5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.36, + "output": 0.4 + }, + "limit": { + "context": 32768, + "output": 16384 + } + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + "id": "qwen/qwen3-30b-a3b-thinking-2507", + "name": "Qwen3 30B A3B Thinking 2507", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 2.4 + }, + "limit": { + "context": 81920, + "output": 32768 + } + }, + "qwen/qwen3.6-27b": { + "id": "qwen/qwen3.6-27b", + "name": "Qwen3.6 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.32, + "output": 3.2 + }, + "limit": { + "context": 262144, + "output": 81920 + } + }, + "qwen/qwen3.6-plus": { + "id": "qwen/qwen3.6-plus", + "name": "Qwen3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.325, + "output": 1.95, + "cache_write": 0.40625, + "tiers": [ + { + "input": 1.3, + "output": 3.9, + "cache_write": 1.625, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "qwen/qwen3-14b": { + "id": "qwen/qwen3-14b", + "name": "Qwen3 14B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.12, + "output": 0.24 + }, + "limit": { + "context": 131072, + "output": 16384 + } + }, + "qwen/qwen3-vl-8b-thinking": { + "id": "qwen/qwen3-vl-8b-thinking", + "name": "Qwen3 VL 8B Thinking", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.18, + "output": 2.1 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "qwen/qwen3.7-plus": { + "id": "qwen/qwen3.7-plus", + "name": "Qwen3.7 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.32, + "output": 1.28, + "cache_read": 0.064, + "cache_write": 0.4, + "tiers": [ + { + "input": 0.96, + "output": 3.84, + "cache_read": 0.192, + "cache_write": 1.2, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "qwen/qwen3.8-27b:free": { + "id": "qwen/qwen3.8-27b:free", + "name": "Qwen3.8 27B (free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 235929 + } + }, + "qwen/qwen3.8-max-0902": { + "id": "qwen/qwen3.8-max-0902", + "name": "Qwen3.8 Max 0902", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "morph/morph-v3-large": { + "id": "morph/morph-v3-large", + "name": "Morph V3 Large", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.9, + "output": 1.9 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "morph/morph-v3-fast": { + "id": "morph/morph-v3-fast", + "name": "Morph V3 Fast", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 1.2 + }, + "limit": { + "context": 81920, + "output": 38000 + } + }, + "openai/gpt-5.4": { + "id": "openai/gpt-5.4", + "name": "GPT-5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.4-image-2": { + "id": "openai/gpt-5.4-image-2", + "name": "GPT-5.4 Image 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["image", "text"] + }, + "cost": { + "input": 8, + "output": 15, + "cache_read": 2 + }, + "limit": { + "context": 272000, + "output": 128000 + } + }, + "openai/gpt-5.4-pro": { + "id": "openai/gpt-5.4-pro", + "name": "GPT-5.4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-audio": { + "id": "openai/gpt-audio", + "name": "GPT Audio", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-3.5-turbo": { + "id": "openai/gpt-3.5-turbo", + "name": "GPT-3.5-turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 16385, + "output": 4096 + } + }, + "openai/gpt-6-astra-pro": { + "id": "openai/gpt-6-astra-pro", + "name": "GPT-6 Astra Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.5-pro": { + "id": "openai/gpt-5.5-pro", + "name": "GPT-5.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.4-nano": { + "id": "openai/gpt-5.4-nano", + "name": "GPT-5.4 nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4o-2024-05-13": { + "id": "openai/gpt-4o-2024-05-13", + "name": "GPT-4o (2024-05-13)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 15 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "openai/gpt-4o-mini-2024-07-18": { + "id": "openai/gpt-4o-mini-2024-07-18", + "name": "GPT-4o-mini (2024-07-18)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-5.2-codex": { + "id": "openai/gpt-5.2-codex", + "name": "GPT-5.2 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.1-codex": { + "id": "openai/gpt-5.1-codex", + "name": "GPT-5.1 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4o": { + "id": "openai/gpt-4o", + "name": "GPT-4o", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-chat-latest": { + "id": "openai/gpt-chat-latest", + "name": "GPT Chat Latest", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-audio-mini": { + "id": "openai/gpt-audio-mini", + "name": "GPT Audio Mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.6, + "output": 2.4 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-5.6-sol-pro": { + "id": "openai/gpt-5.6-sol-pro", + "name": "GPT-5.6 Sol Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5-mini": { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.2-pro": { + "id": "openai/gpt-5.2-pro", + "name": "GPT-5.2 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 21, + "output": 168 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/o4-mini": { + "id": "openai/o4-mini", + "name": "o4-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": false, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/o3-mini": { + "id": "openai/o3-mini", + "name": "o3-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-4": { + "id": "openai/gpt-4", + "name": "GPT-4", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 60 + }, + "limit": { + "context": 8191, + "output": 4096 + } + }, + "openai/gpt-5.3-codex": { + "id": "openai/gpt-5.3-codex", + "name": "GPT-5.3 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4.1-nano": { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1 nano", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-5-nano": { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/o1": { + "id": "openai/o1", + "name": "o1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-5-pro": { + "id": "openai/gpt-5-pro", + "name": "GPT-5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "temperature": false, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 120 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-3.5-turbo-instruct": { + "id": "openai/gpt-3.5-turbo-instruct", + "name": "GPT-3.5 Turbo Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 2 + }, + "limit": { + "context": 4095, + "output": 3685 + } + }, + "openai/gpt-6.1-sol": { + "id": "openai/gpt-6.1-sol", + "name": "GPT-6.1 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-4o-2024-08-06": { + "id": "openai/gpt-4o-2024-08-06", + "name": "GPT-4o (2024-08-06)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-6-astra": { + "id": "openai/gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.6-luna-pro": { + "id": "openai/gpt-5.6-luna-pro", + "name": "GPT-5.6 Luna Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.1": { + "id": "openai/gpt-5.1", + "name": "GPT-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5-image-mini": { + "id": "openai/gpt-5-image-mini", + "name": "GPT-5 Image Mini", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["image", "text"] + }, + "cost": { + "input": 2.5, + "output": 2, + "cache_read": 0.25 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4o-mini": { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/o3-pro": { + "id": "openai/o3-pro", + "name": "o3-pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "pdf", "image"], + "output": ["text"] + }, + "cost": { + "input": 20, + "output": 80 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-oss-20b": { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.018, + "output": 0.09, + "cache_read": 0.009 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "openai/gpt-oss-safeguard-20b": { + "id": "openai/gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.3, + "cache_read": 0.0375 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "openai/o3-mini-high": { + "id": "openai/o3-mini-high", + "name": "o3 Mini High", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-3.5-turbo-16k": { + "id": "openai/gpt-3.5-turbo-16k", + "name": "GPT-3.5 Turbo 16k", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 4 + }, + "limit": { + "context": 16385, + "output": 4096 + } + }, + "openai/gpt-5.2-chat": { + "id": "openai/gpt-5.2-chat", + "name": "GPT-5.2 Chat", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 128000, + "output": 32000 + } + }, + "openai/gpt-6-sol-pro": { + "id": "openai/gpt-6-sol-pro", + "name": "GPT-6 Sol Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5-image": { + "id": "openai/gpt-5-image", + "name": "GPT-5 Image", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["image", "text"] + }, + "cost": { + "input": 10, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.4-mini": { + "id": "openai/gpt-5.4-mini", + "name": "GPT-5.4 mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.6-luna": { + "id": "openai/gpt-5.6-luna", + "name": "GPT-5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.1-codex-max": { + "id": "openai/gpt-5.1-codex-max", + "name": "GPT-5.1 Codex Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.2": { + "id": "openai/gpt-5.2", + "name": "GPT-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.5": { + "id": "openai/gpt-5.5", + "name": "GPT-5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-4.1": { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-4o-2024-11-20": { + "id": "openai/gpt-4o-2024-11-20", + "name": "GPT-4o (2024-11-20)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-3.5-turbo-0613": { + "id": "openai/gpt-3.5-turbo-0613", + "name": "GPT-3.5 Turbo (older v0613)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2 + }, + "limit": { + "context": 4095, + "output": 3685 + } + }, + "openai/gpt-4.1-mini": { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-5.6-terra-pro": { + "id": "openai/gpt-5.6-terra-pro", + "name": "GPT-5.6 Terra Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-6-luna": { + "id": "openai/gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-6.1-sol-pro": { + "id": "openai/gpt-6.1-sol-pro", + "name": "GPT-6.1 Sol Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/o4-mini-high": { + "id": "openai/o4-mini-high", + "name": "o4 Mini High", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "temperature": false, + "modalities": { + "input": ["image", "text", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-6-luna-pro": { + "id": "openai/gpt-6-luna-pro", + "name": "GPT-6 Luna Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["pdf", "image", "text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.6-terra": { + "id": "openai/gpt-5.6-terra", + "name": "GPT-5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-4-turbo": { + "id": "openai/gpt-4-turbo", + "name": "GPT-4 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 30 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "openai/gpt-oss-120b": { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.037, + "output": 0.17 + }, + "limit": { + "context": 131072, + "output": 117964 + } + }, + "openai/gpt-5.1-codex-mini": { + "id": "openai/gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/o3": { + "id": "openai/o3", + "name": "o3", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-5": { + "id": "openai/gpt-5", + "name": "GPT-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.6-sol": { + "id": "openai/gpt-5.6-sol", + "name": "GPT-5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-6-sol": { + "id": "openai/gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/o1-pro": { + "id": "openai/o1-pro", + "name": "o1-pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 150, + "output": 600 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "microsoft/phi-4": { + "id": "microsoft/phi-4", + "name": "Phi 4", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.14 + }, + "limit": { + "context": 16384, + "output": 14745 + } + }, + "microsoft/wizardlm-2-8x22b": { + "id": "microsoft/wizardlm-2-8x22b", + "name": "WizardLM-2 8x22B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.62, + "output": 0.62 + }, + "limit": { + "context": 65535, + "output": 8000 + } + } + } + }, + "togetherai": { + "id": "togetherai", + "name": "Together AI", + "env": ["TOGETHER_API_KEY"], + "npm": "@ai-sdk/togetherai", + "models": { + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + "id": "meta-llama/Llama-3.3-70B-Instruct-Turbo", + "name": "Llama 3.3 70B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.04, + "output": 1.04 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "meta-llama/Meta-Llama-3-8B-Instruct-Lite": { + "id": "meta-llama/Meta-Llama-3-8B-Instruct-Lite", + "name": "Meta Llama 3 8B Instruct Lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.14 + }, + "limit": { + "context": 8192, + "output": 8192 + } + }, + "pearl-ai/gemma-4-31b-it": { + "id": "pearl-ai/gemma-4-31b-it", + "name": "Pearl AI Gemma 4 31B Instruct", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.28, + "output": 0.86 + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "deepcogito/cogito-v2-1-671b": { + "id": "deepcogito/cogito-v2-1-671b", + "name": "Cogito v2.1 671B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 1.25 + }, + "limit": { + "context": 163840, + "output": 163840 + } + }, + "thinkingmachines/Inkling": { + "id": "thinkingmachines/Inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["max", "xhigh", "high", "medium", "low", "none"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 4.05, + "cache_read": 0.17 + }, + "limit": { + "context": 524288, + "output": 131072 + } + }, + "essentialai/Rnj-1-Instruct": { + "id": "essentialai/Rnj-1-Instruct", + "name": "Rnj-1 Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.15 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "google/gemma-3n-E4B-it": { + "id": "google/gemma-3n-E4B-it", + "name": "Gemma 3N E4B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.12 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "google/gemma-4-31B-it": { + "id": "google/gemma-4-31B-it", + "name": "Gemma 4 31B Instruct", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.39, + "output": 0.97 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "Qwen/Qwen3.7-Max": { + "id": "Qwen/Qwen3.7-Max", + "name": "Qwen3.7 Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 3.75, + "cache_read": 0.125 + }, + "limit": { + "context": 1000000, + "output": 500000 + } + }, + "Qwen/Qwen2.5-7B-Instruct-Turbo": { + "id": "Qwen/Qwen2.5-7B-Instruct-Turbo", + "name": "Qwen 2.5 7B Instruct Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.3 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "Qwen/Qwen3-Coder-Next-FP8": { + "id": "Qwen/Qwen3-Coder-Next-FP8", + "name": "Qwen3 Coder Next FP8", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { + "id": "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", + "name": "Qwen3 235B A22B Instruct 2507 FP8", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "Qwen/Qwen3.5-9B": { + "id": "Qwen/Qwen3.5-9B", + "name": "Qwen3.5 9B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.17, + "output": 0.25 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "Qwen/Qwen3.5-397B-A17B": { + "id": "Qwen/Qwen3.5-397B-A17B", + "name": "Qwen3.5 397B A17B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6, + "cache_read": 0.35 + }, + "limit": { + "context": 262144, + "output": 130000 + } + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + "id": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + "name": "Qwen3 Coder 480B A35B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "Qwen/Qwen3.6-Plus": { + "id": "Qwen/Qwen3.6-Plus", + "name": "Qwen3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3 + }, + "limit": { + "context": 1000000, + "output": 500000 + } + }, + "LiquidAI/LFM2-24B-A2B": { + "id": "LiquidAI/LFM2-24B-A2B", + "name": "LFM2-24B-A2B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.12 + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "deepseek-ai/DeepSeek-V4-Flash-0731": { + "id": "deepseek-ai/DeepSeek-V4-Flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-R1": { + "id": "deepseek-ai/DeepSeek-R1", + "name": "DeepSeek-R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 7 + }, + "limit": { + "context": 163839, + "output": 163839 + } + }, + "deepseek-ai/DeepSeek-V4-Pro-0813": { + "id": "deepseek-ai/DeepSeek-V4-Pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.32, + "output": 3.96, + "cache_read": 0.13 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V4.1-Flash": { + "id": "deepseek-ai/DeepSeek-V4.1-Flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.006 + }, + "limit": { + "context": 1048576, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V3-1": { + "id": "deepseek-ai/DeepSeek-V3-1", + "name": "DeepSeek V3.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.7 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "deepseek-ai/DeepSeek-V4-Pro": { + "id": "deepseek-ai/DeepSeek-V4-Pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.74, + "output": 3.48, + "cache_read": 0.2 + }, + "limit": { + "context": 512000, + "output": 384000 + } + }, + "deepseek-ai/DeepSeek-V3": { + "id": "deepseek-ai/DeepSeek-V3", + "name": "DeepSeek-V3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 1.25 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "MiniMaxAI/MiniMax-M3": { + "id": "MiniMaxAI/MiniMax-M3", + "name": "MiniMax-M3", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 524288, + "output": 250000 + } + }, + "MiniMaxAI/MiniMax-M2.5": { + "id": "MiniMaxAI/MiniMax-M2.5", + "name": "MiniMax-M2.5", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "MiniMaxAI/MiniMax-M2.7": { + "id": "MiniMaxAI/MiniMax-M2.7", + "name": "MiniMax-M2.7", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 196608, + "output": 131072 + } + }, + "moonshotai/Kimi-K3": { + "id": "moonshotai/Kimi-K3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": false, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "zai-org/GLM-5.1": { + "id": "zai-org/GLM-5.1", + "name": "GLM-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "zai-org/GLM-5.2": { + "id": "zai-org/GLM-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1048575, + "output": 164000 + } + }, + "zai-org/GLM-5": { + "id": "zai-org/GLM-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2 + }, + "limit": { + "context": 202752, + "output": 131072 + } + }, + "zai-org/GLM-5.3-Flash": { + "id": "zai-org/GLM-5.3-Flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048575, + "output": 400000 + } + }, + "zai-org/GLM-5.3": { + "id": "zai-org/GLM-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "nvidia/nemotron-3-ultra-550b-a55b": { + "id": "nvidia/nemotron-3-ultra-550b-a55b", + "name": "Nemotron 3 Ultra 550B A55B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6, + "cache_read": 0.2 + }, + "limit": { + "context": 512300, + "output": 512300 + } + }, + "openai/gpt-oss-20b": { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "openai/gpt-oss-120b": { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 131072, + "output": 131072 + } + } + } + }, + "vercel": { + "id": "vercel", + "name": "Vercel AI Gateway", + "env": ["AI_GATEWAY_API_KEY"], + "npm": "@ai-sdk/gateway", + "models": { + "voyage/voyage-law-2": { + "id": "voyage/voyage-law-2", + "name": "voyage-law-2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/rerank-2.5-lite": { + "id": "voyage/rerank-2.5-lite", + "name": "Voyage Rerank 2.5 Lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "voyage/voyage-3.5": { + "id": "voyage/voyage-3.5", + "name": "voyage-3.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/voyage-finance-2": { + "id": "voyage/voyage-finance-2", + "name": "voyage-finance-2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/voyage-4-large": { + "id": "voyage/voyage-4-large", + "name": "voyage-4-large", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 0 + } + }, + "voyage/voyage-3.5-lite": { + "id": "voyage/voyage-3.5-lite", + "name": "voyage-3.5-lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/voyage-4": { + "id": "voyage/voyage-4", + "name": "voyage-4", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 0 + } + }, + "voyage/voyage-3-large": { + "id": "voyage/voyage-3-large", + "name": "voyage-3-large", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/voyage-code-2": { + "id": "voyage/voyage-code-2", + "name": "voyage-code-2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/voyage-code-3": { + "id": "voyage/voyage-code-3", + "name": "voyage-code-3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "voyage/rerank-2.5": { + "id": "voyage/rerank-2.5", + "name": "Voyage Rerank 2.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "voyage/voyage-4-lite": { + "id": "voyage/voyage-4-lite", + "name": "voyage-4-lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 0 + } + }, + "interfaze/interfaze-beta": { + "id": "interfaze/interfaze-beta", + "name": "Interfaze Beta", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 3.5 + }, + "limit": { + "context": 1000000, + "output": 32000 + } + }, + "stealth/pixel-canary": { + "id": "stealth/pixel-canary", + "name": "Pixel Canary", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "zai/glm-4.5": { + "id": "zai/glm-4.5", + "name": "GLM 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 128000, + "output": 96000 + } + }, + "zai/glm-5v-turbo": { + "id": "zai/glm-5v-turbo", + "name": "GLM 5V Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24 + }, + "limit": { + "context": 200000, + "output": 128000 + } + }, + "zai/glm-5.3-flash": { + "id": "zai/glm-5.3-flash", + "name": "GLM 5.3 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1000000, + "output": 131000 + } + }, + "zai/glm-4.6": { + "id": "zai/glm-4.6", + "name": "GLM 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11 + }, + "limit": { + "context": 200000, + "output": 96000 + } + }, + "zai/glm-5.2-fast": { + "id": "zai/glm-5.2-fast", + "name": "GLM 5.2 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.8, + "output": 8.8, + "cache_read": 0.56 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "zai/glm-5": { + "id": "zai/glm-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2 + }, + "limit": { + "context": 202800, + "output": 131100 + } + }, + "zai/glm-4.5v": { + "id": "zai/glm-4.5v", + "name": "GLM 4.5V", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.8, + "cache_read": 0.11 + }, + "limit": { + "context": 66000, + "output": 16000 + } + }, + "zai/glm-5.3-flashx": { + "id": "zai/glm-5.3-flashx", + "name": "GLM 5.3 FlashX", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.37, + "output": 1.25, + "cache_read": 0.075 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "zai/glm-4.7-flash": { + "id": "zai/glm-4.7-flash", + "name": "GLM 4.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.4 + }, + "limit": { + "context": 200000, + "output": 131000 + } + }, + "zai/glm-4.7": { + "id": "zai/glm-4.7", + "name": "GLM 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2 + }, + "limit": { + "context": 200000, + "output": 120000 + } + }, + "zai/glm-5.2": { + "id": "zai/glm-5.2", + "name": "GLM 5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 2.55, + "cache_read": 0.16 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "zai/glm-5.1": { + "id": "zai/glm-5.1", + "name": "GLM 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26 + }, + "limit": { + "context": 202800, + "output": 64000 + } + }, + "zai/glm-4.7-flashx": { + "id": "zai/glm-4.7-flashx", + "name": "GLM 4.7 FlashX", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.4, + "cache_read": 0.01 + }, + "limit": { + "context": 200000, + "output": 128000 + } + }, + "zai/glm-5-turbo": { + "id": "zai/glm-5-turbo", + "name": "GLM 5 Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24 + }, + "limit": { + "context": 202800, + "output": 131072 + } + }, + "zai/glm-4.5-air": { + "id": "zai/glm-4.5-air", + "name": "GLM 4.5 Air", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03 + }, + "limit": { + "context": 128000, + "output": 96000 + } + }, + "zai/glm-5.3": { + "id": "zai/glm-5.3", + "name": "GLM 5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.14 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "zai/glm-5.3-fast": { + "id": "zai/glm-5.3-fast", + "name": "GLM 5.3 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.1, + "output": 6.6, + "cache_read": 0.21 + }, + "limit": { + "context": 1048576, + "output": 262144 + } + }, + "spacexai/grok-4.20-multi-agent": { + "id": "spacexai/grok-4.20-multi-agent", + "name": "Grok 4.20 Multi-Agent", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "spacexai/grok-tts": { + "id": "spacexai/grok-tts", + "name": "Grok TTS", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-4.20-reasoning": { + "id": "spacexai/grok-4.20-reasoning", + "name": "Grok 4.20 Reasoning", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "spacexai/grok-4.7": { + "id": "spacexai/grok-4.7", + "name": "Grok 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "spacexai/grok-voice-think-fast-1.0": { + "id": "spacexai/grok-voice-think-fast-1.0", + "name": "Grok Voice Think Fast 1.0", + "reasoning": false, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-4.20-non-reasoning": { + "id": "spacexai/grok-4.20-non-reasoning", + "name": "Grok 4.20 Non-Reasoning", + "reasoning": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "spacexai/grok-stt": { + "id": "spacexai/grok-stt", + "name": "Grok STT", + "reasoning": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-imagine-image": { + "id": "spacexai/grok-imagine-image", + "name": "Grok Imagine Image", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-imagine-video": { + "id": "spacexai/grok-imagine-video", + "name": "Grok Imagine", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-4.1-fast-reasoning": { + "id": "spacexai/grok-4.1-fast-reasoning", + "name": "Grok 4.1 Fast Reasoning", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "spacexai/grok-4.3": { + "id": "spacexai/grok-4.3", + "name": "Grok 4.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "spacexai/grok-imagine-video-1.5": { + "id": "spacexai/grok-imagine-video-1.5", + "name": "Grok Imagine Video 1.5", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-4.5": { + "id": "spacexai/grok-4.5", + "name": "Grok 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.3, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "spacexai/grok-voice-think-fast-2.0": { + "id": "spacexai/grok-voice-think-fast-2.0", + "name": "Grok Voice Think Fast 2.0", + "reasoning": false, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-imagine-image-2.0": { + "id": "spacexai/grok-imagine-image-2.0", + "name": "Grok Imagine Image 2.0", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "spacexai/grok-4.20-multi-agent-beta": { + "id": "spacexai/grok-4.20-multi-agent-beta", + "name": "Grok 4.20 Multi Agent Beta", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "spacexai/grok-4.20-non-reasoning-beta": { + "id": "spacexai/grok-4.20-non-reasoning-beta", + "name": "Grok 4.20 Beta Non-Reasoning", + "reasoning": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.4, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "spacexai/grok-build-0.1": { + "id": "spacexai/grok-build-0.1", + "name": "Grok Build 0.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 4, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "spacexai/grok-4.1-fast-non-reasoning": { + "id": "spacexai/grok-4.1-fast-non-reasoning", + "name": "Grok 4.1 Fast Non-Reasoning", + "reasoning": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "spacexai/grok-4.20-reasoning-beta": { + "id": "spacexai/grok-4.20-reasoning-beta", + "name": "Grok 4.20 Beta Reasoning", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + } + }, + "spacexai/grok-4.6": { + "id": "spacexai/grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "prodia/flux-fast-schnell": { + "id": "prodia/flux-fast-schnell", + "name": "Flux Schnell", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "recraft/recraft-v2": { + "id": "recraft/recraft-v2", + "name": "Recraft V2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "recraft/recraft-v4-pro": { + "id": "recraft/recraft-v4-pro", + "name": "Recraft V4 Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "recraft/recraft-v4.1-utility": { + "id": "recraft/recraft-v4.1-utility", + "name": "Recraft V4.1 Utility", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "recraft/recraft-v4.1-pro": { + "id": "recraft/recraft-v4.1-pro", + "name": "Recraft V4.1 Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "recraft/recraft-v3": { + "id": "recraft/recraft-v3", + "name": "Recraft V3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "recraft/recraft-v4.1": { + "id": "recraft/recraft-v4.1", + "name": "Recraft V4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "recraft/recraft-v4.1-flash": { + "id": "recraft/recraft-v4.1-flash", + "name": "Recraft V4.1 Flash", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "recraft/recraft-v4.1-utility-pro": { + "id": "recraft/recraft-v4.1-utility-pro", + "name": "Recraft V4.1 Utility Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "recraft/recraft-v4": { + "id": "recraft/recraft-v4", + "name": "Recraft V4", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "poolside/laguna-s-2.1-free": { + "id": "poolside/laguna-s-2.1-free", + "name": "Laguna S 2.1 Free", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 32768 + } + }, + "poolside/laguna-s-2.1": { + "id": "poolside/laguna-s-2.1", + "name": "Laguna S 2.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.01 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "anthropic/claude-opus-4.5": { + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + }, + { + "type": "budget_tokens" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic/claude-opus-4.6": { + "id": "anthropic/claude-opus-4.6", + "name": "Claude Opus 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "max"] + }, + { + "type": "budget_tokens" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-4.7": { + "id": "anthropic/claude-opus-4.7", + "name": "Claude Opus 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-3-haiku": { + "id": "anthropic/claude-3-haiku", + "name": "Claude Haiku 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + }, + "limit": { + "context": 200000, + "output": 4096 + } + }, + "anthropic/claude-opus-4.8": { + "id": "anthropic/claude-opus-4.8", + "name": "Claude Opus 4.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-5.5-fast": { + "id": "anthropic/claude-opus-5.5-fast", + "name": "Claude Opus 5.5 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 8, + "output": 40, + "cache_read": 0.4, + "cache_write": 10 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-haiku-4.5": { + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + }, + "limit": { + "context": 200000, + "output": 64000 + } + }, + "anthropic/claude-opus-5": { + "id": "anthropic/claude-opus-5", + "name": "Claude Opus 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-5.5": { + "id": "anthropic/claude-sonnet-5.5", + "name": "Claude Sonnet 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-fable-5.1": { + "id": "anthropic/claude-fable-5.1", + "name": "Claude Fable 5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 0.25, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-fable-5": { + "id": "anthropic/claude-fable-5", + "name": "Claude Fable 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-4.8-fast": { + "id": "anthropic/claude-opus-4.8-fast", + "name": "Claude Opus 4.8 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-4": { + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "anthropic/claude-sonnet-5": { + "id": "anthropic/claude-sonnet-5", + "name": "Claude Sonnet 5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-sonnet-4.6": { + "id": "anthropic/claude-sonnet-4.6", + "name": "Claude Sonnet 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "max"] + }, + { + "type": "budget_tokens" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-5.5": { + "id": "anthropic/claude-opus-5.5", + "name": "Claude Opus 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-5-fast": { + "id": "anthropic/claude-opus-5-fast", + "name": "Claude Opus 5 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "anthropic/claude-opus-4": { + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + }, + "limit": { + "context": 200000, + "output": 32000 + } + }, + "anthropic/claude-sonnet-4.5": { + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1024 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "cohere/rerank-v4-fast": { + "id": "cohere/rerank-v4-fast", + "name": "Cohere Rerank 4 Fast", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "cohere/rerank-v4-pro": { + "id": "cohere/rerank-v4-pro", + "name": "Cohere Rerank 4 Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "cohere/command-a": { + "id": "cohere/command-a", + "name": "Command A", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 256000, + "output": 8000 + } + }, + "cohere/embed-v4.0": { + "id": "cohere/embed-v4.0", + "name": "Embed v4.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 128000, + "output": 1536 + } + }, + "cohere/rerank-v3.5": { + "id": "cohere/rerank-v3.5", + "name": "Cohere Rerank 3.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 4096, + "output": 4096 + } + }, + "deepseek/deepseek-v4-flash-0731": { + "id": "deepseek/deepseek-v4-flash-0731", + "name": "DeepSeek V4 Flash 0731", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.076, + "output": 0.153, + "cache_read": 0.014 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek/deepseek-v4.1-flash": { + "id": "deepseek/deepseek-v4.1-flash", + "name": "DeepSeek V4.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.007 + }, + "limit": { + "context": 1048576, + "output": 32768 + } + }, + "deepseek/deepseek-v4-flash-vision-exp": { + "id": "deepseek/deepseek-v4-flash-vision-exp", + "name": "DeepSeek V4 Flash Vision Exp", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2156, + "output": 0.6468, + "cache_read": 0.0068 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "deepseek/deepseek-v3.1-terminus": { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.27, + "output": 1, + "cache_read": 0.135 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "deepseek/deepseek-v4-pro-0813": { + "id": "deepseek/deepseek-v4-pro-0813", + "name": "DeepSeek V4 Pro 0813", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1.98, + "cache_read": 0.066 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek/deepseek-v3.2-thinking": { + "id": "deepseek/deepseek-v3.2-thinking", + "name": "DeepSeek V3.2 Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.62, + "output": 1.85 + }, + "limit": { + "context": 128000, + "output": 8000 + } + }, + "deepseek/deepseek-v3.1": { + "id": "deepseek/deepseek-v3.1", + "name": "DeepSeek-V3.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.95, + "cache_read": 0.13 + }, + "limit": { + "context": 163840, + "output": 128000 + } + }, + "deepseek/deepseek-v4-pro": { + "id": "deepseek/deepseek-v4-pro", + "name": "DeepSeek V4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.66, + "output": 1.98, + "cache_read": 0.022 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek/deepseek-v3.2": { + "id": "deepseek/deepseek-v3.2", + "name": "DeepSeek V3.2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.62, + "output": 1.85 + }, + "limit": { + "context": 128000, + "output": 8000 + } + }, + "deepseek/deepseek-v4-flash": { + "id": "deepseek/deepseek-v4-flash", + "name": "DeepSeek V4 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.13, + "output": 0.26, + "cache_read": 0.028 + }, + "limit": { + "context": 1000000, + "output": 384000 + } + }, + "deepseek/deepseek-r1": { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek-R1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.35, + "output": 5.4 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "quiverai/arrow-1.1": { + "id": "quiverai/arrow-1.1", + "name": "Arrow 1.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "quiverai/arrow-2": { + "id": "quiverai/arrow-2", + "name": "Arrow 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "quiverai/arrow-2-telos": { + "id": "quiverai/arrow-2-telos", + "name": "Arrow 2 Telos", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 6, + "output": 30, + "cache_read": 0.6, + "cache_write": 7.5 + }, + "limit": { + "context": 131072, + "output": 65536 + } + }, + "bfl/flux-kontext-max": { + "id": "bfl/flux-kontext-max", + "name": "FLUX.1 Kontext Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "bfl/flux-pro-1.1-ultra": { + "id": "bfl/flux-pro-1.1-ultra", + "name": "FLUX1.1 [pro] Ultra", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "bfl/flux-3-video": { + "id": "bfl/flux-3-video", + "name": "Flux 3", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bfl/flux-2-flex": { + "id": "bfl/flux-2-flex", + "name": "FLUX.2 [flex]", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bfl/flux-2-klein-4b": { + "id": "bfl/flux-2-klein-4b", + "name": "FLUX.2 [klein] 4B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bfl/flux-pro-1.0-fill": { + "id": "bfl/flux-pro-1.0-fill", + "name": "FLUX.1 Fill [pro]", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "bfl/flux-2-klein-9b": { + "id": "bfl/flux-2-klein-9b", + "name": "FLUX.2 [klein] 9B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bfl/flux-2-pro": { + "id": "bfl/flux-2-pro", + "name": "FLUX.2 [pro]", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 67300, + "output": 67300 + } + }, + "bfl/flux-2-max": { + "id": "bfl/flux-2-max", + "name": "FLUX.2 [max]", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 67300, + "output": 67300 + } + }, + "bfl/flux-pro-1.1": { + "id": "bfl/flux-pro-1.1", + "name": "FLUX1.1 [pro]", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "bfl/flux-kontext-pro": { + "id": "bfl/flux-kontext-pro", + "name": "FLUX.1 Kontext Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 512, + "output": 0 + } + }, + "tencent/hy-mt2-lite": { + "id": "tencent/hy-mt2-lite", + "name": "Tencent Hy-MT2-Lite", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.044, + "output": 0.177 + }, + "limit": { + "context": 8000, + "output": 4000 + } + }, + "tencent/hy3": { + "id": "tencent/hy3", + "name": "Hy3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.58, + "cache_read": 0.035 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "tencent/hy-mt2-plus": { + "id": "tencent/hy-mt2-plus", + "name": "Tencent Hy-MT2-Plus", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.074, + "output": 0.295 + }, + "limit": { + "context": 8000, + "output": 4000 + } + }, + "tencent/hy-mt2-pro": { + "id": "tencent/hy-mt2-pro", + "name": "Tencent Hy-MT2-Pro", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.074, + "output": 0.295 + }, + "limit": { + "context": 8000, + "output": 4000 + } + }, + "tencent/hy4-preview": { + "id": "tencent/hy4-preview", + "name": "Tencent Hy4 Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.834, + "output": 2.501, + "cache_read": 0.042 + }, + "limit": { + "context": 1024000, + "output": 64000 + } + }, + "inference-net/schematron-v2-small": { + "id": "inference-net/schematron-v2-small", + "name": "Schematron V2 Small", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.23, + "cache_read": 0.05 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "inference-net/schematron-v2-turbo": { + "id": "inference-net/schematron-v2-turbo", + "name": "Schematron V2 Turbo", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.15, + "cache_read": 0.03 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "thinkingmachines/inkling-small": { + "id": "thinkingmachines/inkling-small", + "name": "Inkling Small", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 1.2, + "cache_read": 0.1 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "thinkingmachines/inkling": { + "id": "thinkingmachines/inkling", + "name": "Inkling", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 4.05, + "cache_read": 0.17 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "meituan/longcat-2.5-preview": { + "id": "meituan/longcat-2.5-preview", + "name": "LongCat 2.5 Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.006 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "perplexity/pplx-embed-v1-4b": { + "id": "perplexity/pplx-embed-v1-4b", + "name": "Embed v1 4b", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 0 + } + }, + "perplexity/pplx-embed-v1-0.6b": { + "id": "perplexity/pplx-embed-v1-0.6b", + "name": "Embed v1 0.6b", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32000, + "output": 0 + } + }, + "perplexity/sonar": { + "id": "perplexity/sonar", + "name": "Sonar", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2.5, + "cache_write": 0.0625 + }, + "limit": { + "context": 127000, + "output": 8000 + } + }, + "meta/muse-spark-1.3": { + "id": "meta/muse-spark-1.3", + "name": "Muse Spark 1.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "meta/muse-glimmer-30b": { + "id": "meta/muse-glimmer-30b", + "name": "Muse Glimmer 30B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.35, + "output": 1.5, + "cache_read": 0.04 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "meta/muse-spark-1.1": { + "id": "meta/muse-spark-1.1", + "name": "Muse Spark 1.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "meta/llama-3.1-8b": { + "id": "meta/llama-3.1-8b", + "name": "Llama 3.1 8B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.22 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "meta/llama-3.1-70b": { + "id": "meta/llama-3.1-70b", + "name": "Llama 3.1 70B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.72, + "output": 0.72 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "meta/muse-spark-1.2": { + "id": "meta/muse-spark-1.2", + "name": "Muse Spark 1.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 4.25, + "cache_read": 0.15 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "meta/muse-image-1.0": { + "id": "meta/muse-image-1.0", + "name": "Muse Image 1.0", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "meta/muse-spark-1.2-contributor": { + "id": "meta/muse-spark-1.2-contributor", + "name": "Muse Spark 1.2 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "meta/muse-spark-1.3-contributor": { + "id": "meta/muse-spark-1.3-contributor", + "name": "Muse Spark 1.3 Contributor", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.2, + "cache_read": 0.002 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "meta/llama-3.3-70b": { + "id": "meta/llama-3.3-70b", + "name": "Llama-3.3-70B-Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/llama-4-maverick": { + "id": "meta/llama-4-maverick", + "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "meta/llama-4-scout": { + "id": "meta/llama-4-scout", + "name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "arcee-ai/trinity-large-thinking": { + "id": "arcee-ai/trinity-large-thinking", + "name": "Trinity Large Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.9 + }, + "limit": { + "context": 262100, + "output": 80000 + } + }, + "alibaba/qwen3.5-flash": { + "id": "alibaba/qwen3.5-flash", + "name": "Qwen 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "budget_tokens", + "min": 1, + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0.125 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "alibaba/qwen-3-32b": { + "id": "alibaba/qwen-3-32b", + "name": "Qwen 3.32B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1, + "max": 38912 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.16, + "output": 0.64 + }, + "limit": { + "context": 128000, + "output": 8192 + } + }, + "alibaba/wan-v2.6-t2v": { + "id": "alibaba/wan-v2.6-t2v", + "name": "Wan v2.6 Text-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/qwen3-vl-235b-a22b-instruct": { + "id": "alibaba/qwen3-vl-235b-a22b-instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6 + }, + "limit": { + "context": 131072, + "output": 129024 + } + }, + "alibaba/qwen3.7-max": { + "id": "alibaba/qwen3.7-max", + "name": "Qwen 3.7 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "budget_tokens", + "min": 1, + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.5, + "cache_write": 3.125 + }, + "limit": { + "context": 991000, + "output": 64000 + } + }, + "alibaba/qwen3.8-27b": { + "id": "alibaba/qwen3.8-27b", + "name": "Qwen3.8 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.1, + "cache_write": 0.625 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "alibaba/qwen3-vl-thinking": { + "id": "alibaba/qwen3-vl-thinking", + "name": "Qwen3 VL Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1, + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 4 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "alibaba/qwen3.8-2.4t-a95b": { + "id": "alibaba/qwen3.8-2.4t-a95b", + "name": "Qwen3.8 2.4T A95B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 128000 + } + }, + "alibaba/qwen3-next-80b-a3b-thinking": { + "id": "alibaba/qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1.2 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "alibaba/qwen3.8-max": { + "id": "alibaba/qwen3.8-max", + "name": "Qwen 3.8 Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 262144, + "output": 128000 + } + }, + "alibaba/qwen3-coder-next": { + "id": "alibaba/qwen3-coder-next", + "name": "Qwen3 Coder Next", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.2 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "alibaba/qwen3-vl-instruct": { + "id": "alibaba/qwen3-vl-instruct", + "name": "Qwen3 VL Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6 + }, + "limit": { + "context": 131072, + "output": 129024 + } + }, + "alibaba/qwen3-coder": { + "id": "alibaba/qwen3-coder", + "name": "Qwen3 Coder 480B A35B Instruct", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.3, + "tiers": [ + { + "input": 2.7, + "output": 13.5, + "cache_read": 0.54, + "tier": { + "type": "context", + "size": 32001 + } + }, + { + "input": 4.5, + "output": 22.5, + "cache_read": 0.9, + "tier": { + "type": "context", + "size": 128001 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "alibaba/qwen3.5-plus": { + "id": "alibaba/qwen3.5-plus", + "name": "Qwen 3.5 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "budget_tokens", + "min": 1, + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2.4, + "cache_read": 0.04, + "cache_write": 0.5, + "tiers": [ + { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tier": { + "type": "context", + "size": 256001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "alibaba/qwen-3.6-max-preview": { + "id": "alibaba/qwen-3.6-max-preview", + "name": "Qwen 3.6 Max Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1, + "max": 131072 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.3, + "output": 7.8, + "cache_read": 0.13, + "cache_write": 1.625, + "tiers": [ + { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { + "type": "context", + "size": 128000 + } + } + ] + }, + "limit": { + "context": 240000, + "output": 64000 + } + }, + "alibaba/wan-v2.6-i2v-flash": { + "id": "alibaba/wan-v2.6-i2v-flash", + "name": "Wan v2.6 Image-to-Video Flash", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/wan-v2.6-r2v-flash": { + "id": "alibaba/wan-v2.6-r2v-flash", + "name": "Wan v2.6 Reference-to-Video Flash", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/qwen-3-14b": { + "id": "alibaba/qwen-3-14b", + "name": "Qwen3-14B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.12, + "output": 0.24 + }, + "limit": { + "context": 40960, + "output": 16384 + } + }, + "alibaba/qwen3.7-flash": { + "id": "alibaba/qwen3.7-flash", + "name": "Qwen 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.13, + "cache_read": 0.006, + "cache_write": 0.038, + "tiers": [ + { + "input": 0.1, + "output": 0.4, + "cache_read": 0.02, + "cache_write": 0.125, + "tier": { + "type": "context", + "size": 32000 + } + }, + { + "input": 0.2, + "output": 0.8, + "cache_read": 0.04, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 991000, + "output": 64000 + } + }, + "alibaba/qwen3-max": { + "id": "alibaba/qwen3-max", + "name": "Qwen3 Max", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 6, + "cache_read": 0.24, + "tiers": [ + { + "input": 2.4, + "output": 12, + "cache_read": 0.48, + "tier": { + "type": "context", + "size": 32001 + } + }, + { + "input": 3, + "output": 15, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 128001 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "alibaba/qwen3-embedding-0.6b": { + "id": "alibaba/qwen3-embedding-0.6b", + "name": "Qwen3 Embedding 0.6B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "alibaba/qwen-3-30b": { + "id": "alibaba/qwen-3-30b", + "name": "Qwen3-30B-A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.12, + "output": 0.5 + }, + "limit": { + "context": 40960, + "output": 16384 + } + }, + "alibaba/qwen3.8-omni-flash": { + "id": "alibaba/qwen3.8-omni-flash", + "name": "Qwen 3.8 Omni Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "alibaba/qwen3-coder-30b-a3b": { + "id": "alibaba/qwen3-coder-30b-a3b", + "name": "Qwen 3 Coder 30B A3B Instruct", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 262144, + "output": 8192 + } + }, + "alibaba/qwen3-embedding-4b": { + "id": "alibaba/qwen3-embedding-4b", + "name": "Qwen3 Embedding 4B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "alibaba/qwen3-max-preview": { + "id": "alibaba/qwen3-max-preview", + "name": "Qwen3 Max Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 6, + "cache_read": 0.24, + "tiers": [ + { + "input": 2.4, + "output": 12, + "cache_read": 0.48, + "tier": { + "type": "context", + "size": 32001 + } + }, + { + "input": 3, + "output": 15, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 128001 + } + } + ] + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "alibaba/wan-v2.6-i2v": { + "id": "alibaba/wan-v2.6-i2v", + "name": "Wan v2.6 Image-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/qwen3-next-80b-a3b-instruct": { + "id": "alibaba/qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 1.2 + }, + "limit": { + "context": 262114, + "output": 262114 + } + }, + "alibaba/wan-v2.5-t2v-preview": { + "id": "alibaba/wan-v2.5-t2v-preview", + "name": "Wan v2.5 Text-to-Video Preview", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/qwen3-max-thinking": { + "id": "alibaba/qwen3-max-thinking", + "name": "Qwen 3 Max Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1, + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 6, + "cache_read": 0.24, + "tiers": [ + { + "input": 2.4, + "output": 12, + "cache_read": 0.48, + "tier": { + "type": "context", + "size": 32001 + } + }, + { + "input": 3, + "output": 15, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 128001 + } + } + ] + }, + "limit": { + "context": 256000, + "output": 65536 + } + }, + "alibaba/qwen3-coder-plus": { + "id": "alibaba/qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.2, + "tiers": [ + { + "input": 1.8, + "output": 9, + "cache_read": 0.36, + "tier": { + "type": "context", + "size": 32001 + } + }, + { + "input": 3, + "output": 15, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 128001 + } + }, + { + "input": 6, + "output": 60, + "cache_read": 1.2, + "tier": { + "type": "context", + "size": 256001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 65536 + } + }, + "alibaba/qwen3.8-max-prime": { + "id": "alibaba/qwen3.8-max-prime", + "name": "Qwen 3.8 Max Prime", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 12, + "cache_read": 0.5, + "cache_write": 5 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "alibaba/qwen3-235b-a22b-thinking": { + "id": "alibaba/qwen3-235b-a22b-thinking", + "name": "Qwen3 235B A22B Thinking 2507", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 1, + "max": 81920 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 4 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "alibaba/qwen3.8-flash": { + "id": "alibaba/qwen3.8-flash", + "name": "Qwen 3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens" + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.47, + "cache_read": 0.016, + "cache_write": 0.2 + }, + "limit": { + "context": 991000, + "output": 128000 + } + }, + "alibaba/qwen3-embedding-8b": { + "id": "alibaba/qwen3-embedding-8b", + "name": "Qwen3 Embedding 8B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 32768, + "output": 32768 + } + }, + "alibaba/wan-v3.0-video": { + "id": "alibaba/wan-v3.0-video", + "name": "Wan v3.0 Video", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/wan-v2.7-r2v": { + "id": "alibaba/wan-v2.7-r2v", + "name": "Wan v2.7 Reference-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/wan-v3.0-video-prime": { + "id": "alibaba/wan-v3.0-video-prime", + "name": "Wan v3.0 Video Prime", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/qwen3.6-27b": { + "id": "alibaba/qwen3.6-27b", + "name": "Qwen 3.6 27B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1, + "max": 131072 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3.6 + }, + "limit": { + "context": 256000, + "output": 65536 + } + }, + "alibaba/qwen-3-235b": { + "id": "alibaba/qwen-3-235b", + "name": "Qwen3 235B A22B Instruct 2507", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.22, + "output": 0.88 + }, + "limit": { + "context": 262144, + "output": 16384 + } + }, + "alibaba/qwen3.6-plus": { + "id": "alibaba/qwen3.6-plus", + "name": "Qwen 3.6 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "budget_tokens", + "min": 1, + "max": 131072 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "alibaba/qwen3.7-plus": { + "id": "alibaba/qwen3.7-plus", + "name": "Qwen 3.7 Plus", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + { + "type": "budget_tokens", + "min": 1, + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.08, + "cache_write": 0.5, + "tiers": [ + { + "input": 1.2, + "output": 4.8, + "cache_read": 0.24, + "cache_write": 1.5, + "tier": { + "type": "context", + "size": 256000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "alibaba/wan-v2.6-r2v": { + "id": "alibaba/wan-v2.6-r2v", + "name": "Wan v2.6 Reference-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "alibaba/qwen3.8-max-0902": { + "id": "alibaba/qwen3.8-max-0902", + "name": "Qwen3.8 Max 0902", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "xhigh"] + }, + { + "type": "budget_tokens", + "min": 0, + "max": 262144 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25, + "cache_write": 2.5 + }, + "limit": { + "context": 991000, + "output": 128000 + } + }, + "alibaba/wan-v2.7-t2v": { + "id": "alibaba/wan-v2.7-t2v", + "name": "Wan v2.7 Text-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "mixedbread/toast-1": { + "id": "mixedbread/toast-1", + "name": "Toast 1", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.72, + "cache_read": 0.036 + }, + "limit": { + "context": 131000, + "output": 4000 + } + }, + "klingai/kling-v2.6-t2v": { + "id": "klingai/kling-v2.6-t2v", + "name": "Kling v2.6 Text-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v2.6-i2v": { + "id": "klingai/kling-v2.6-i2v", + "name": "Kling v2.6 Image-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v2.5-turbo-t2v": { + "id": "klingai/kling-v2.5-turbo-t2v", + "name": "Kling v2.5 Turbo Text-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v3.0-i2v": { + "id": "klingai/kling-v3.0-i2v", + "name": "Kling v3.0 Image-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v3.0-motion-control": { + "id": "klingai/kling-v3.0-motion-control", + "name": "Kling v3.0 Motion Control", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v3.0-t2v": { + "id": "klingai/kling-v3.0-t2v", + "name": "Kling v3.0 Text-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v2.6-motion-control": { + "id": "klingai/kling-v2.6-motion-control", + "name": "Kling v2.6 Motion Control", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "klingai/kling-v2.5-turbo-i2v": { + "id": "klingai/kling-v2.5-turbo-i2v", + "name": "Kling v2.5 Turbo Image-to-Video", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedream-5.0-lite": { + "id": "bytedance/seedream-5.0-lite", + "name": "Seedream 5.0 Lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedream-4.5": { + "id": "bytedance/seedream-4.5", + "name": "Seedream 4.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seed-1.8": { + "id": "bytedance/seed-1.8", + "name": "Seed 1.8", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.05, + "tiers": [ + { + "input": 0.5, + "output": 4, + "cache_read": 0.05, + "tier": { + "type": "context", + "size": 128001 + } + } + ] + }, + "limit": { + "context": 256000, + "output": 32768 + } + }, + "bytedance/seed-2.1-turbo": { + "id": "bytedance/seed-2.1-turbo", + "name": "Seed 2.1 Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 2.5, + "cache_read": 0.1 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "bytedance/seedream-4.0": { + "id": "bytedance/seedream-4.0", + "name": "Seedream 4.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-v1.0-pro": { + "id": "bytedance/seedance-v1.0-pro", + "name": "Seedance v1.0 Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-2.0": { + "id": "bytedance/seedance-2.0", + "name": "Seedance 2.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-2.0-fast": { + "id": "bytedance/seedance-2.0-fast", + "name": "Seedance 2.0 Fast", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-v1.5-pro": { + "id": "bytedance/seedance-v1.5-pro", + "name": "Seedance v1.5 Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-2.0-mini": { + "id": "bytedance/seedance-2.0-mini", + "name": "Seedance 2.0 Mini", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-2.5": { + "id": "bytedance/seedance-2.5", + "name": "Seedance 2.5", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedance-v1.0-pro-fast": { + "id": "bytedance/seedance-v1.0-pro-fast", + "name": "Seedance v1.0 Pro Fast", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seedream-5.0-pro": { + "id": "bytedance/seedream-5.0-pro", + "name": "Seedream 5.0 Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "bytedance/seed-1.6": { + "id": "bytedance/seed-1.6", + "name": "Seed 1.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.05, + "tiers": [ + { + "input": 0.5, + "output": 4, + "cache_read": 0.05, + "tier": { + "type": "context", + "size": 128001 + } + } + ] + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "liquid/d1": { + "id": "liquid/d1", + "name": "Liquid d1", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 32000, + "output": 0 + } + }, + "google/gemma-4-31b-it": { + "id": "google/gemma-4-31b-it", + "name": "Gemma 4 31B IT", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.4 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "google/gemini-omni-flash-preview": { + "id": "google/gemini-omni-flash-preview", + "name": "Gemini Omni Flash Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9 + }, + "limit": { + "context": 1000000, + "output": 57920 + } + }, + "google/gemini-3.1-flash-image-preview": { + "id": "google/gemini-3.1-flash-image-preview", + "name": "Gemini 3.1 Flash Image Preview (Nano Banana 2)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "google/gemini-3.5-transcribe-live": { + "id": "google/gemini-3.5-transcribe-live", + "name": "Gemini 3.5 Transcribe Live", + "reasoning": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-2.5-flash-image": { + "id": "google/gemini-2.5-flash-image", + "name": "Nano Banana (Gemini 2.5 Flash Image)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 32768, + "output": 65535 + } + }, + "google/gemini-3.8-flash-lite-tts": { + "id": "google/gemini-3.8-flash-lite-tts", + "name": "Gemini 3.8 Flash-Lite TTS", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 0.5, + "output": 6, + "cache_read": 0.125 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/text-multilingual-embedding-002": { + "id": "google/text-multilingual-embedding-002", + "name": "Text Multilingual Embedding 002", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "google/gemini-embedding-2": { + "id": "google/gemini-embedding-2", + "name": "Gemini Embedding 2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3.6-flash": { + "id": "google/gemini-3.6-flash", + "name": "Gemini 3.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "google/veo-3.1-lite-generate-001": { + "id": "google/veo-3.1-lite-generate-001", + "name": "Veo 3.1 Lite Generate", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemma-4-26b-a4b-it": { + "id": "google/gemma-4-26b-a4b-it", + "name": "Gemma 4 26B A4B IT", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "google/gemini-3.5-flash-lite": { + "id": "google/gemini-3.5-flash-lite", + "name": "Gemini 3.5 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1000000, + "output": 65000 + } + }, + "google/gemini-3.1-flash-image": { + "id": "google/gemini-3.1-flash-image", + "name": "Nano Banana 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 131072, + "output": 32768 + } + }, + "google/gemini-3.1-pro-preview": { + "id": "google/gemini-3.1-pro-preview", + "name": "Gemini 3.1 Pro Preview", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "google/veo-3.1-fast-generate-001": { + "id": "google/veo-3.1-fast-generate-001", + "name": "Veo 3.1 Fast Generate", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3-flash": { + "id": "google/gemini-3-flash", + "name": "Gemini 3 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "limit": { + "context": 1000000, + "output": 65000 + } + }, + "google/gemini-3.5-flash": { + "id": "google/gemini-3.5-flash", + "name": "Gemini 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15 + }, + "limit": { + "context": 1000000, + "output": 64000 + } + }, + "google/gemini-3-pro-image": { + "id": "google/gemini-3-pro-image", + "name": "Nano Banana Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2 + }, + "limit": { + "context": 65536, + "output": 32768 + } + }, + "google/veo-3.0-fast-generate-001": { + "id": "google/veo-3.0-fast-generate-001", + "name": "Veo 3.0 Fast Generate", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3.8-live": { + "id": "google/gemini-3.8-live", + "name": "Gemini 3.8 Live", + "reasoning": false, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.75, + "output": 4.5 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/veo-3.1-generate-001": { + "id": "google/veo-3.1-generate-001", + "name": "Veo 3.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3.1-flash-lite-image": { + "id": "google/gemini-3.1-flash-lite-image", + "name": "Gemini 3.1 Flash Lite Image (Nano Banana 2 Lite)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.03 + }, + "limit": { + "context": 65536, + "output": 4096 + } + }, + "google/gemini-3.7-flash": { + "id": "google/gemini-3.7-flash", + "name": "Gemini 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "google/text-embedding-005": { + "id": "google/text-embedding-005", + "name": "Text Embedding 005", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "google/gemini-3.5-transcribe": { + "id": "google/gemini-3.5-transcribe", + "name": "Gemini 3.5 Transcribe", + "reasoning": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3.8-flash": { + "id": "google/gemini-3.8-flash", + "name": "Gemini 3.8 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 3.75, + "cache_read": 0.075 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "google/gemini-2.5-flash-lite": { + "id": "google/gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + }, + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01 + }, + "limit": { + "context": 1048576, + "output": 65535 + } + }, + "google/gemini-embedding-001": { + "id": "google/gemini-embedding-001", + "name": "Gemini Embedding 001", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "google/gemini-3.8-flash-tts": { + "id": "google/gemini-3.8-flash-tts", + "name": "Gemini 3.8 Flash TTS", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "cost": { + "input": 0.5, + "output": 9, + "cache_read": 0.125 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3.8-live-extended-thinking": { + "id": "google/gemini-3.8-live-extended-thinking", + "name": "Gemini 3.8 Live Extended Thinking", + "reasoning": false, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.75, + "output": 4.5 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/veo-3.0-generate-001": { + "id": "google/veo-3.0-generate-001", + "name": "Veo 3.0", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "google/gemini-3.1-flash-lite": { + "id": "google/gemini-3.1-flash-lite", + "name": "Gemini 3.1 Flash Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1000000, + "output": 65000 + } + }, + "google/gemini-2.5-flash": { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 0, + "max": 24576 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03 + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "google/gemini-2.5-pro": { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens", + "min": 128, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + } + }, + "fireworks/ember-1": { + "id": "fireworks/ember-1", + "name": "Ember-1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + }, + { + "type": "budget_tokens", + "min": 1024 + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1048576, + "output": 1048576 + } + }, + "sakana/fugu-max": { + "id": "sakana/fugu-max", + "name": "Fugu Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.25 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "sakana/fugu-ultra-v2": { + "id": "sakana/fugu-ultra-v2", + "name": "Fugu Ultra v2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "sakana/namazu": { + "id": "sakana/namazu", + "name": "Sakana Namazu", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.15 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "sakana/fugu-ultra": { + "id": "sakana/fugu-ultra", + "name": "Fugu Ultra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "inclusionai/ling-3.1-flash-free": { + "id": "inclusionai/ling-3.1-flash-free", + "name": "Ling 3.1 Flash (Free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "inclusionai/ling-3.0-flash": { + "id": "inclusionai/ling-3.0-flash", + "name": "Ling 3.0 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.021, + "output": 0.063, + "cache_read": 0.0042 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "inclusionai/ling-3.1-flash": { + "id": "inclusionai/ling-3.1-flash", + "name": "Ling 3.1 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "inclusionai/ling-3.0-flash-sante": { + "id": "inclusionai/ling-3.0-flash-sante", + "name": "Ling 3.0 Flash Sante", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "inclusionai/ling-3.0-flash-vl": { + "id": "inclusionai/ling-3.0-flash-vl", + "name": "Ling 3.0 Flash VL", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.22, + "cache_read": 0.015 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "inclusionai/ling-3.0-flash-fin": { + "id": "inclusionai/ling-3.0-flash-fin", + "name": "Ling 3.0 Flash Fin", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.075, + "output": 0.22, + "cache_read": 0.015 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "inclusionai/ling-3.0-flash-sante-free": { + "id": "inclusionai/ling-3.0-flash-sante-free", + "name": "Ling 3.0 Flash Sante (Free)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "moonshotai/kimi-k3": { + "id": "moonshotai/kimi-k3", + "name": "Kimi K3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "moonshotai/kimi-k3-fast": { + "id": "moonshotai/kimi-k3-fast", + "name": "Kimi K3 Fast", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.5, + "output": 22.5, + "cache_read": 0.45 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "moonshotai/kimi-k2.7-code-highspeed": { + "id": "moonshotai/kimi-k2.7-code-highspeed", + "name": "Kimi K2.7 Code High Speed", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.9, + "output": 8, + "cache_read": 0.38 + }, + "limit": { + "context": 262144, + "output": 32768 + } + }, + "moonshotai/kimi-k2.6": { + "id": "moonshotai/kimi-k2.6", + "name": "Kimi K2.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.16 + }, + "limit": { + "context": 262000, + "output": 262000 + } + }, + "moonshotai/kimi-k2-thinking": { + "id": "moonshotai/kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.47, + "output": 2, + "cache_read": 0.141 + }, + "limit": { + "context": 216144, + "output": 216144 + } + }, + "moonshotai/kimi-k2.5": { + "id": "moonshotai/kimi-k2.5", + "name": "Kimi K2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 3 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "moonshotai/kimi-k2": { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2 Instruct", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.57, + "output": 2.3 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "moonshotai/kimi-k2.7-code": { + "id": "moonshotai/kimi-k2.7-code", + "name": "Kimi K2.7 Code", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.95, + "output": 4, + "cache_read": 0.19 + }, + "limit": { + "context": 256000, + "output": 32768 + } + }, + "nvidia/nemotron-3-nano-30b-a3b": { + "id": "nvidia/nemotron-3-nano-30b-a3b", + "name": "Nemotron 3 Nano 30B A3B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2, + "cache_read": 0.025 + }, + "limit": { + "context": 262144, + "output": 262144 + } + }, + "nvidia/nemotron-3.5-lightning": { + "id": "nvidia/nemotron-3.5-lightning", + "name": "Nemotron 3.5 Lightning 30B", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "budget_tokens", + "min": 1, + "max": 32768 + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.2, + "cache_read": 0.01 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "nvidia/nemotron-nano-9b-v2": { + "id": "nvidia/nemotron-nano-9b-v2", + "name": "Nvidia Nemotron Nano 9B V2", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.23 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "nvidia/nemotron-3-super-120b-a12b": { + "id": "nvidia/nemotron-3-super-120b-a12b", + "name": "NVIDIA Nemotron 3 Super 120B A12B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.65 + }, + "limit": { + "context": 256000, + "output": 32000 + } + }, + "nvidia/nemotron-3-ultra-550b-a55b": { + "id": "nvidia/nemotron-3-ultra-550b-a55b", + "name": "Nemotron 3 Ultra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.12 + }, + "limit": { + "context": 1000000, + "output": 65000 + } + }, + "nvidia/nemotron-nano-12b-v2-vl": { + "id": "nvidia/nemotron-nano-12b-v2-vl", + "name": "Nvidia Nemotron Nano 12B V2 VL", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.6 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "xiaomi/mimo-v2.6-pro": { + "id": "xiaomi/mimo-v2.6-pro", + "name": "MiMo V2.6 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "xiaomi/mimo-v2.5": { + "id": "xiaomi/mimo-v2.5", + "name": "MiMo M2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1050000, + "output": 131100 + } + }, + "xiaomi/mimo-v2.6-pro-ultraspeed": { + "id": "xiaomi/mimo-v2.6-pro-ultraspeed", + "name": "MiMo V2.6 Pro UltraSpeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 4.35, + "output": 8.7, + "cache_read": 0.036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "xiaomi/mimo-v2.5-pro": { + "id": "xiaomi/mimo-v2.5-pro", + "name": "MiMo V2.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1050000, + "output": 131000 + } + }, + "xiaomi/mimo-v2.6-flash": { + "id": "xiaomi/mimo-v2.6-flash", + "name": "MiMo V2.6 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "minimax/minimax-m2.5": { + "id": "minimax/minimax-m2.5", + "name": "MiniMax M2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131000 + } + }, + "minimax/minimax-m2.1-lightning": { + "id": "minimax/minimax-m2.1-lightning", + "name": "MiniMax M2.1 Lightning", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.4, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "minimax/minimax-h3": { + "id": "minimax/minimax-h3", + "name": "MiniMax H3", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "minimax/minimax-m2.7": { + "id": "minimax/minimax-m2.7", + "name": "Minimax M2.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131000 + } + }, + "minimax/minimax-h3-max": { + "id": "minimax/minimax-h3-max", + "name": "MiniMax H3 Max", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["video"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "minimax/minimax-m3": { + "id": "minimax/minimax-m3", + "name": "MiniMax M3", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06 + }, + "limit": { + "context": 512000, + "output": 512000 + } + }, + "minimax/minimax-m2.7-highspeed": { + "id": "minimax/minimax-m2.7-highspeed", + "name": "MiniMax M2.7 High Speed", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131100 + } + }, + "minimax/minimax-m2.5-highspeed": { + "id": "minimax/minimax-m2.5-highspeed", + "name": "MiniMax M2.5 High Speed", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131000 + } + }, + "minimax/minimax-m2.1": { + "id": "minimax/minimax-m2.1", + "name": "MiniMax M2.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "minimax/minimax-m2": { + "id": "minimax/minimax-m2", + "name": "MiniMax M2", + "reasoning": true, + "reasoning_options": [ + { + "type": "budget_tokens" + } + ], + "interleaved": true, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + }, + "limit": { + "context": 205000, + "output": 196608 + } + }, + "stepfun/step-5-preview": { + "id": "stepfun/step-5-preview", + "name": "Step 5 Preview", + "reasoning": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2.7, + "cache_read": 0.05 + }, + "limit": { + "context": 1000000, + "output": 1000000 + } + }, + "stepfun/step-3.5-flash": { + "id": "stepfun/step-3.5-flash", + "name": "StepFun 3.5 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.09, + "output": 0.3, + "cache_read": 0.02 + }, + "limit": { + "context": 262114, + "output": 262114 + } + }, + "stepfun/step-3.7-flash": { + "id": "stepfun/step-3.7-flash", + "name": "Step 3.7 Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.15, + "cache_read": 0.04 + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "inception/mercury-coder-small": { + "id": "inception/mercury-coder-small", + "name": "Mercury Coder Small Beta", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1 + }, + "limit": { + "context": 32000, + "output": 16384 + } + }, + "inception/mercury-2.5": { + "id": "inception/mercury-2.5", + "name": "Mercury 2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.15, + "cache_read": 0.004 + }, + "limit": { + "context": 260000, + "output": 65536 + } + }, + "inception/mercury-2": { + "id": "inception/mercury-2", + "name": "Mercury 2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 0.75, + "cache_read": 0.024999999999999998 + }, + "limit": { + "context": 128000, + "output": 50000 + } + }, + "amazon/titan-embed-text-v2": { + "id": "amazon/titan-embed-text-v2", + "name": "Titan Text Embeddings V2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "amazon/nova-2-lite": { + "id": "amazon/nova-2-lite", + "name": "Nova 2 Lite", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + }, + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075 + }, + "limit": { + "context": 1000000, + "output": 65535 + } + }, + "amazon/nova-lite": { + "id": "amazon/nova-lite", + "name": "Nova Lite", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015, + "cache_write": 0.06 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "amazon/nova-pro": { + "id": "amazon/nova-pro", + "name": "Nova Pro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0.8 + }, + "limit": { + "context": 300000, + "output": 10000 + } + }, + "amazon/nova-micro": { + "id": "amazon/nova-micro", + "name": "Nova Micro", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875, + "cache_write": 0.035 + }, + "limit": { + "context": 128000, + "output": 10000 + } + }, + "mistral/codestral-embed": { + "id": "mistral/codestral-embed", + "name": "Codestral Embed", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "mistral/mistral-nemo": { + "id": "mistral/mistral-nemo", + "name": "Mistral Nemo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.17 + }, + "limit": { + "context": 60288, + "output": 16000 + } + }, + "mistral/mistral-medium-3.5": { + "id": "mistral/mistral-medium-3.5", + "name": "Mistral Medium Latest", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 7.5, + "cache_read": 0.15 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "mistral/mistral-small": { + "id": "mistral/mistral-small", + "name": "Mistral Small (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.015 + }, + "limit": { + "context": 262144, + "output": 4000 + } + }, + "mistral/mistral-large-3": { + "id": "mistral/mistral-large-3", + "name": "Mistral Large 3", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 0.05 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "mistral/mistral-embed": { + "id": "mistral/mistral-embed", + "name": "Mistral Embed", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "mistral/ministral-14b": { + "id": "mistral/ministral-14b", + "name": "Ministral 14B", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.2, + "cache_read": 0.02 + }, + "limit": { + "context": 262144, + "output": 256000 + } + }, + "mistral/codestral": { + "id": "mistral/codestral", + "name": "Codestral (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9, + "cache_read": 0.03 + }, + "limit": { + "context": 256000, + "output": 4096 + } + }, + "mistral/ministral-8b": { + "id": "mistral/ministral-8b", + "name": "Ministral 8B (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.1 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "mistral/ministral-3b": { + "id": "mistral/ministral-3b", + "name": "Ministral 3B (latest)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.04, + "output": 0.04 + }, + "limit": { + "context": 128000, + "output": 128000 + } + }, + "fish-audio/s2.1-pro": { + "id": "fish-audio/s2.1-pro", + "name": "S2.1 Pro", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "fish-audio/s1": { + "id": "fish-audio/s1", + "name": "S1", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "fish-audio/transcribe-1": { + "id": "fish-audio/transcribe-1", + "name": "Transcribe-1", + "reasoning": false, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "fish-audio/s2-pro": { + "id": "fish-audio/s2-pro", + "name": "S2 Pro", + "reasoning": false, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "morph/morph-v3-fast": { + "id": "morph/morph-v3-fast", + "name": "Morph v3 Fast", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.8, + "output": 1.2 + }, + "limit": { + "context": 16000, + "output": 16000 + } + }, + "morph/morph-v3-large": { + "id": "morph/morph-v3-large", + "name": "Morph v3 Large", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.9, + "output": 1.9 + }, + "limit": { + "context": 32000, + "output": 32000 + } + }, + "openai/gpt-4.1-mini-fast": { + "id": "openai/gpt-4.1-mini-fast", + "name": "GPT-4.1 mini (Fast)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.7, + "output": 2.8, + "cache_read": 0.175 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/o3-fast": { + "id": "openai/o3-fast", + "name": "o3 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.5, + "output": 14, + "cache_read": 0.875 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-5.4": { + "id": "openai/gpt-5.4", + "name": "GPT 5.4", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.4-pro": { + "id": "openai/gpt-5.4-pro", + "name": "GPT 5.4 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-oss-safeguard-120b": { + "id": "openai/gpt-oss-safeguard-120b", + "name": "GPT OSS Safeguard 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6 + }, + "limit": { + "context": 128000, + "output": 16000 + } + }, + "openai/gpt-3.5-turbo": { + "id": "openai/gpt-3.5-turbo", + "name": "GPT-3.5 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.5, + "output": 1.5 + }, + "limit": { + "context": 16385, + "output": 4096 + } + }, + "openai/gpt-5.2-fast": { + "id": "openai/gpt-5.2-fast", + "name": "GPT 5.2 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.5, + "output": 28, + "cache_read": 0.35 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4o-transcribe": { + "id": "openai/gpt-4o-transcribe", + "name": "GPT-4o Transcribe", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.5-pro": { + "id": "openai/gpt-5.5-pro", + "name": "GPT 5.5 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai/text-embedding-3-small": { + "id": "openai/text-embedding-3-small", + "name": "text-embedding-3-small", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "openai/gpt-5.4-nano": { + "id": "openai/gpt-5.4-nano", + "name": "GPT 5.4 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-realtime-2.1": { + "id": "openai/gpt-realtime-2.1", + "name": "gpt-realtime-2.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 4, + "output": 24, + "cache_read": 0.4 + }, + "limit": { + "context": 128000, + "output": 32000 + } + }, + "openai/gpt-5.2-codex": { + "id": "openai/gpt-5.2-codex", + "name": "GPT-5.2-Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4o-fast": { + "id": "openai/gpt-4o-fast", + "name": "GPT-4o (Fast)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4.25, + "output": 17, + "cache_read": 2.125 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-5.1-codex": { + "id": "openai/gpt-5.1-codex", + "name": "GPT-5.1-Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-6.1-sol-fast": { + "id": "openai/gpt-6.1-sol-fast", + "name": "GPT-6.1 Sol (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.2, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.4, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-live-1": { + "id": "openai/gpt-live-1", + "name": "GPT-Live 1", + "reasoning": false, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-realtime-1.5": { + "id": "openai/gpt-realtime-1.5", + "name": "GPT-Realtime-1.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 4, + "output": 16, + "cache_read": 0.4 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-4.1-nano-fast": { + "id": "openai/gpt-4.1-nano-fast", + "name": "GPT-4.1 nano (Fast)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 0.8, + "cache_read": 0.05 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-5-codex": { + "id": "openai/gpt-5-codex", + "name": "GPT-5-Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-image-2": { + "id": "openai/gpt-image-2", + "name": "GPT Image 2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.6-luna-fast": { + "id": "openai/gpt-5.6-luna-fast", + "name": "GPT 5.6 Luna (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 2.4, + "cache_read": 0.04, + "cache_write": 0.5, + "tiers": [ + { + "input": 0.8, + "output": 3.6, + "cache_read": 0.08, + "cache_write": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-6-astra-fast": { + "id": "openai/gpt-6-astra-fast", + "name": "GPT-6 Astra (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 20, + "output": 100, + "cache_read": 2, + "cache_write": 25, + "tiers": [ + { + "input": 40, + "output": 150, + "cache_read": 4, + "cache_write": 50, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.2-pro": { + "id": "openai/gpt-5.2-pro", + "name": "GPT 5.2 ", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 21, + "output": 168 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.1-thinking-fast": { + "id": "openai/gpt-5.1-thinking-fast", + "name": "GPT 5.1 Thinking (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 20, + "cache_read": 0.25 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/text-embedding-ada-002": { + "id": "openai/text-embedding-ada-002", + "name": "text-embedding-ada-002", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "openai/gpt-5.3-codex": { + "id": "openai/gpt-5.3-codex", + "name": "GPT 5.3 Codex", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/whisper-1": { + "id": "openai/whisper-1", + "name": "Whisper", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.3-codex-fast": { + "id": "openai/gpt-5.3-codex-fast", + "name": "GPT 5.3 Codex (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.5, + "output": 28, + "cache_read": 0.35 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.5-fast": { + "id": "openai/gpt-5.5-fast", + "name": "GPT 5.5 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 12.5, + "output": 75, + "cache_read": 1.25 + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai/gpt-image-2.5-flare": { + "id": "openai/gpt-image-2.5-flare", + "name": "GPT Image 2.5 Flare", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.4-fast": { + "id": "openai/gpt-5.4-fast", + "name": "GPT 5.4 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5 + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.6-sol-fast": { + "id": "openai/gpt-5.6-sol-fast", + "name": "GPT 5.6 Sol (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 8, + "output": 40, + "cache_read": 0.8, + "cache_write": 10, + "tiers": [ + { + "input": 16, + "output": 60, + "cache_read": 1.6, + "cache_write": 20, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/o4-mini-fast": { + "id": "openai/o4-mini-fast", + "name": "o4-mini (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-5-pro": { + "id": "openai/gpt-5-pro", + "name": "GPT-5 pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 120 + }, + "limit": { + "context": 400000, + "output": 272000 + } + }, + "openai/gpt-6.1-sol": { + "id": "openai/gpt-6.1-sol", + "name": "GPT-6.1 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.1, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.2, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.1-thinking": { + "id": "openai/gpt-5.1-thinking", + "name": "GPT 5.1 Thinking", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/text-embedding-3-large": { + "id": "openai/text-embedding-3-large", + "name": "text-embedding-3-large", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "limit": { + "context": 8192, + "output": 1536 + } + }, + "openai/gpt-6-astra": { + "id": "openai/gpt-6-astra", + "name": "GPT-6 Astra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 50, + "cache_read": 1, + "cache_write": 12.5, + "tiers": [ + { + "input": 20, + "output": 75, + "cache_read": 2, + "cache_write": 25, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.4-mini-fast": { + "id": "openai/gpt-5.4-mini-fast", + "name": "GPT 5.4 Mini (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.5, + "output": 9, + "cache_read": 0.15 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-realtime-mini": { + "id": "openai/gpt-realtime-mini", + "name": "GPT-Realtime mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5-mini-fast": { + "id": "openai/gpt-5-mini-fast", + "name": "GPT-5 mini (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.45, + "output": 3.6, + "cache_read": 0.045 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/o3-pro": { + "id": "openai/o3-pro", + "name": "o3 Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 20, + "output": 80 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-oss-20b": { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.03, + "output": 0.14 + }, + "limit": { + "context": 131072, + "output": 8192 + } + }, + "openai/gpt-oss-safeguard-20b": { + "id": "openai/gpt-oss-safeguard-20b", + "name": "gpt-oss-safeguard-20b", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.2 + }, + "limit": { + "context": 128000, + "output": 16000 + } + }, + "openai/gpt-image-2.5-sunburst": { + "id": "openai/gpt-image-2.5-sunburst", + "name": "GPT Image 2.5 Sunburst", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.6-terra-fast": { + "id": "openai/gpt-5.6-terra-fast", + "name": "GPT 5.6 Terra (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 24, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 36, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-image-1": { + "id": "openai/gpt-image-1", + "name": "GPT Image 1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 40, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.4-mini": { + "id": "openai/gpt-5.4-mini", + "name": "GPT 5.4 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.6-luna": { + "id": "openai/gpt-5.6-luna", + "name": "GPT 5.6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.8, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5.1-codex-max": { + "id": "openai/gpt-5.1-codex-max", + "name": "GPT 5.1 Codex Max", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.2": { + "id": "openai/gpt-5.2", + "name": "GPT-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.5": { + "id": "openai/gpt-5.5", + "name": "GPT 5.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "minimal", "low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 128000 + } + }, + "openai/gpt-6-sol-fast": { + "id": "openai/gpt-6-sol-fast", + "name": "GPT-6 Sol (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/tts-1": { + "id": "openai/tts-1", + "name": "TTS-1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-6-luna-fast": { + "id": "openai/gpt-6-luna-fast", + "name": "GPT-6 Luna (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1, + "cache_read": 0.02, + "cache_write": 0.25, + "tiers": [ + { + "input": 0.4, + "output": 1.5, + "cache_read": 0.04, + "cache_write": 0.5, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-5-fast": { + "id": "openai/gpt-5-fast", + "name": "GPT-5 (Fast)", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 20, + "cache_read": 0.25 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-realtime-2": { + "id": "openai/gpt-realtime-2", + "name": "gpt-realtime-2", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "audio"], + "output": ["text", "audio"] + }, + "cost": { + "input": 4, + "output": 24, + "cache_read": 0.4 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-4.1-fast": { + "id": "openai/gpt-4.1-fast", + "name": "GPT-4.1 (Fast)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 3.5, + "output": 14, + "cache_read": 0.875 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-6-luna": { + "id": "openai/gpt-6-luna", + "name": "GPT-6 Luna", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125, + "tiers": [ + { + "input": 0.2, + "output": 0.75, + "cache_read": 0.02, + "cache_write": 0.25, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-image-1-mini": { + "id": "openai/gpt-image-1-mini", + "name": "GPT Image 1 Mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.2 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-4o-mini-transcribe": { + "id": "openai/gpt-4o-mini-transcribe", + "name": "GPT-4o mini Transcribe", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 5 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-image-1.5": { + "id": "openai/gpt-image-1.5", + "name": "GPT Image 1.5", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["image"] + }, + "cost": { + "input": 5, + "output": 32, + "cache_read": 1.25 + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5.6-terra": { + "id": "openai/gpt-5.6-terra", + "name": "GPT 5.6 Terra", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-oss-120b": { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.1 + }, + "limit": { + "context": 131072, + "output": 131072 + } + }, + "openai/gpt-5.1-codex-mini": { + "id": "openai/gpt-5.1-codex-mini", + "name": "GPT-5.1 Codex mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-5.6-sol": { + "id": "openai/gpt-5.6-sol", + "name": "GPT 5.6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 4, + "output": 20, + "cache_read": 0.4, + "cache_write": 5, + "tiers": [ + { + "input": 8, + "output": 30, + "cache_read": 0.8, + "cache_write": 10, + "tier": { + "type": "context", + "size": 272000 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/gpt-4o-mini-fast": { + "id": "openai/gpt-4o-mini-fast", + "name": "GPT-4o mini (Fast)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 1, + "cache_read": 0.125 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/gpt-realtime-whisper": { + "id": "openai/gpt-realtime-whisper", + "name": "gpt-realtime-whisper", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["audio"], + "output": ["text"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-6-sol": { + "id": "openai/gpt-6-sol", + "name": "GPT-6 Sol", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high", "xhigh", "max"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 10, + "cache_read": 0.2, + "cache_write": 2.5, + "tiers": [ + { + "input": 4, + "output": 15, + "cache_read": 0.4, + "cache_write": 5, + "tier": { + "type": "context", + "size": 272001 + } + } + ] + }, + "limit": { + "context": 1050000, + "output": 128000 + } + }, + "openai/tts-1-hd": { + "id": "openai/tts-1-hd", + "name": "TTS-1 HD", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["audio"] + }, + "limit": { + "context": 0, + "output": 0 + } + }, + "openai/gpt-5": { + "id": "openai/gpt-5", + "name": "GPT-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/o3": { + "id": "openai/o3", + "name": "o3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-4-turbo": { + "id": "openai/gpt-4-turbo", + "name": "GPT-4 Turbo", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 10, + "output": 30 + }, + "limit": { + "context": 128000, + "output": 4096 + } + }, + "openai/gpt-4.1-mini": { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-4.1": { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/gpt-4o-mini": { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075 + }, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "openai/o1": { + "id": "openai/o1", + "name": "o1", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-5-nano": { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4.1-nano": { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1 nano", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + }, + "limit": { + "context": 1047576, + "output": 32768 + } + }, + "openai/o3-mini": { + "id": "openai/o3-mini", + "name": "o3-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/o4-mini": { + "id": "openai/o4-mini", + "name": "o4-mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.275 + }, + "limit": { + "context": 200000, + "output": 100000 + } + }, + "openai/gpt-5-mini": { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["minimal", "low", "medium", "high"] + } + ], + "temperature": false, + "modalities": { + "input": ["text", "image"], + "output": ["text"] + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + }, + "limit": { + "context": 400000, + "output": 128000 + } + }, + "openai/gpt-4o": { + "id": "openai/gpt-4o", + "name": "GPT-4o", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + }, + "limit": { + "context": 128000, + "output": 16384 + } + } + } + }, + "xai": { + "id": "xai", + "name": "xAI", + "env": ["XAI_API_KEY"], + "npm": "@ai-sdk/xai", + "models": { + "grok-4.7": { + "id": "grok-4.7", + "name": "Grok 4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "grok-imagine-image": { + "id": "grok-imagine-image", + "name": "Grok Imagine Image", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["image", "pdf"] + }, + "limit": { + "context": 16000, + "output": 0 + } + }, + "grok-imagine-video": { + "id": "grok-imagine-video", + "name": "Grok Imagine Video", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["video"] + }, + "limit": { + "context": 1024, + "output": 0 + } + }, + "grok-4.3": { + "id": "grok-4.3", + "name": "Grok 4.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["none", "low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 30000 + } + }, + "grok-4.20-0309-reasoning": { + "id": "grok-4.20-0309-reasoning", + "name": "Grok 4.20 (Reasoning)", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 30000 + } + }, + "grok-imagine-video-1.5": { + "id": "grok-imagine-video-1.5", + "name": "Grok Imagine Video 1.5", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "audio", "pdf"], + "output": ["video"] + }, + "limit": { + "context": 1024, + "output": 0 + } + }, + "grok-4.5": { + "id": "grok-4.5", + "name": "Grok 4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.3, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.6, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + }, + "grok-4.20-0309-non-reasoning": { + "id": "grok-4.20-0309-non-reasoning", + "name": "Grok 4.20 (Non-Reasoning)", + "reasoning": false, + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 30000 + } + }, + "grok-imagine-image-quality": { + "id": "grok-imagine-image-quality", + "name": "Grok Imagine Image Quality", + "reasoning": false, + "temperature": false, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["image", "pdf"] + }, + "limit": { + "context": 16000, + "output": 0 + } + }, + "grok-build-0.1": { + "id": "grok-build-0.1", + "name": "Grok Build 0.1", + "reasoning": true, + "reasoning_options": [], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 2, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 4, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 256000, + "output": 256000 + } + }, + "grok-4.20-multi-agent-0309": { + "id": "grok-4.20-multi-agent-0309", + "name": "Grok 4.20 Multi-Agent", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 1000000, + "output": 30000 + } + }, + "grok-4.6": { + "id": "grok-4.6", + "name": "Grok 4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "medium", "high", "xhigh"] + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.5, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 1, + "tier": { + "type": "context", + "size": 200000 + } + } + ] + }, + "limit": { + "context": 500000, + "output": 500000 + } + } + } + }, + "xiaomi": { + "id": "xiaomi", + "name": "Xiaomi", + "env": ["XIAOMI_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.xiaomimimo.com/v1", + "models": { + "mimo-v2.6-pro": { + "id": "mimo-v2.6-pro", + "name": "MiMo-V2.6-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "mimo-v2-flash": { + "id": "mimo-v2-flash", + "name": "MiMo-V2-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 262144, + "output": 65536 + } + }, + "mimo-v2.5": { + "id": "mimo-v2.5", + "name": "MiMo-V2.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "mimo-v2-omni": { + "id": "mimo-v2-omni", + "name": "MiMo-V2-Omni", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 262144, + "output": 131072 + } + }, + "mimo-v2.6-pro-ultraspeed": { + "id": "mimo-v2.6-pro-ultraspeed", + "name": "MiMo-V2.6-Pro-UltraSpeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 4.35, + "output": 8.7, + "cache_read": 0.036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "mimo-v2-pro": { + "id": "mimo-v2-pro", + "name": "MiMo-V2-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "mimo-v2.5-pro": { + "id": "mimo-v2.5-pro", + "name": "MiMo-V2.5-Pro", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.435, + "output": 0.87, + "cache_read": 0.0036 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "mimo-v2.6-flash": { + "id": "mimo-v2.6-flash", + "name": "MiMo-V2.6-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.14, + "output": 0.28, + "cache_read": 0.0028 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + }, + "mimo-v2.5-pro-ultraspeed": { + "id": "mimo-v2.5-pro-ultraspeed", + "name": "MiMo-V2.5-Pro-UltraSpeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.305, + "output": 2.61, + "cache_read": 0.0108 + }, + "limit": { + "context": 1048576, + "output": 131072 + } + } + } + }, + "zai": { + "id": "zai", + "name": "Z.AI", + "env": ["ZHIPU_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.z.ai/api/paas/v4", + "models": { + "glm-4.6v": { + "id": "glm-4.6v", + "name": "GLM-4.6V", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "glm-4.5": { + "id": "glm-4.5", + "name": "GLM-4.5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "glm-5v-turbo": { + "id": "glm-5v-turbo", + "name": "GLM-5V-Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 131072 + } + }, + "glm-5.3-flash": { + "id": "glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.15, + "output": 0.5, + "cache_read": 0.03, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-4.6": { + "id": "glm-4.6", + "name": "GLM-4.6", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "glm-5": { + "id": "glm-5", + "name": "GLM-5", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "glm-4.6v-flash": { + "id": "glm-4.6v-flash", + "name": "GLM-4.6V-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 128000, + "output": 32768 + } + }, + "glm-4.5v": { + "id": "glm-4.5v", + "name": "GLM-4.5V", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 1.8 + }, + "limit": { + "context": 64000, + "output": 16384 + } + }, + "glm-5.3-flashx": { + "id": "glm-5.3-flashx", + "name": "GLM-5.3-FlashX", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0.37, + "output": 1.25, + "cache_read": 0.075, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-4.7-flash": { + "id": "glm-4.7-flash", + "name": "GLM-4.7-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 131072 + } + }, + "glm-4.7": { + "id": "glm-4.7", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "glm-4.5-flash": { + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "glm-5.2": { + "id": "glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5.1": { + "id": "glm-5.1", + "name": "GLM-5.1", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 131072 + } + }, + "glm-4.7-flashx": { + "id": "glm-4.7-flashx", + "name": "GLM-4.7-FlashX", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.07, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 131072 + } + }, + "glm-5-turbo": { + "id": "glm-5-turbo", + "name": "GLM-5-Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 131072 + } + }, + "glm-4.5-air": { + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 + }, + "limit": { + "context": 131072, + "output": 98304 + } + }, + "glm-5.3": { + "id": "glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + } + } + }, + "zai-coding-plan": { + "id": "zai-coding-plan", + "name": "Z.AI Coding Plan", + "env": ["ZHIPU_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.z.ai/api/coding/paas/v4", + "models": { + "glm-5.3-flash": { + "id": "glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5.3-highspeed": { + "id": "glm-5.3-highspeed", + "name": "GLM-5.3 Highspeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5.2-highspeed": { + "id": "glm-5.2-highspeed", + "name": "GLM-5.2 Highspeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-4.7": { + "id": "glm-4.7", + "name": "GLM-4.7", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 204800, + "output": 131072 + } + }, + "glm-5.2": { + "id": "glm-5.2", + "name": "GLM-5.2", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5-turbo": { + "id": "glm-5-turbo", + "name": "GLM-5-Turbo", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 200000, + "output": 131072 + } + }, + "glm-5.3": { + "id": "glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + } + } + }, + "zhipuai-coding-plan": { + "id": "zhipuai-coding-plan", + "name": "Zhipu AI Coding Plan", + "env": ["ZHIPU_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://open.bigmodel.cn/api/coding/paas/v4", + "models": { + "glm-5.3-flash": { + "id": "glm-5.3-flash", + "name": "GLM-5.3-Flash", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text", "image", "video", "pdf"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5.3-highspeed": { + "id": "glm-5.3-highspeed", + "name": "GLM-5.3 Highspeed", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-5.3": { + "id": "glm-5.3", + "name": "GLM-5.3", + "reasoning": true, + "reasoning_options": [ + { + "type": "effort", + "values": ["low", "high", "max"] + } + ], + "interleaved": { + "field": "reasoning_content" + }, + "temperature": true, + "modalities": { + "input": ["text"], + "output": ["text"] + }, + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + }, + "limit": { + "context": 1000000, + "output": 131072 + } + }, + "glm-4.6v": { + "id": "glm-4.6v", + "name": "GLM-4.6V", + "reasoning": true, + "reasoning_options": [ + { + "type": "toggle" + } + ], + "temperature": true, + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "cost": { + "input": 0.3, + "output": 0.9 + }, + "limit": { + "context": 128000, + "output": 32768 + } + } + } + } +}