diff --git a/AGENTS.md b/AGENTS.md index d98f72a..8edc041 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,12 +38,18 @@ description: Brief description for SEO | `pnpm build` | Production build | | `pnpm lint` | Run ESLint | | `pnpm types:check` | Type-check with fumadocs-mdx + tsc | +| `pnpm gen:models` | Refresh `src/data/ai-models.json` from Supabase | ## Generated Content **Do not hand-edit** files under `content/docs/cli/commands/*`. These are generated by `scripts/gen-cli-reference.ts`. +`src/data/ai-models.json` is a snapshot of the Supabase `ai_models` table. +Regenerate with `pnpm gen:models` (script in `scripts/gen-models-table.ts`). +It is rendered by `src/components/ai-models-table.tsx` inside +`content/docs/web/models.mdx`. + ## Tech Stack - Fumadocs (Next.js-based) diff --git a/content/docs/web/models.mdx b/content/docs/web/models.mdx index 5be7445..60611c3 100644 --- a/content/docs/web/models.mdx +++ b/content/docs/web/models.mdx @@ -1,15 +1,26 @@ --- title: Available Models -description: Understand where Mogplex shows the live model catalog, how defaults and enabled models work, and how the web app, CLI, agents, flows, and repos use model access. +description: Browse the Mogplex model catalog snapshot, then learn how defaults and enabled models work and how the web app, CLI, agents, flows, and repos use model access. --- -Mogplex keeps the live model catalog in the web app, not in a static docs -table. +import { AiModelsTable } from '@/components/ai-models-table'; -That is intentional. Model availability, pricing, context length, provider -reachability, recommendations, and enabled state can change by account, team, -plan, entitlement, and sync state. Use this page to understand how to read the -catalog and where model choices take effect. +The live model catalog lives in the web app. This page mirrors a recent +snapshot for browsing, then explains how to read the catalog and where model +choices take effect. + +Model availability, pricing, context length, provider reachability, +recommendations, and enabled state can change by account, team, plan, +entitlement, and sync state. Treat the snapshot below as a reference; the web +app is the source of truth. + +## Catalog snapshot + + + +Search by id, provider, or name. Filter by provider or capability — selecting +multiple capabilities requires all of them. The snapshot is regenerated from +the Supabase `ai_models` table by `pnpm gen:models`. ## Where to see models diff --git a/package.json b/package.json index c449b0e..e8b62d2 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "build": "next build", "dev": "next dev", "start": "next start", + "gen:models": "tsx --env-file=.env.local scripts/gen-models-table.ts", "types:check": "fumadocs-mdx && next typegen && tsc --noEmit", "postinstall": "fumadocs-mdx", "lint": "eslint", @@ -54,6 +55,7 @@ "lint-staged": "^16.4.0", "postcss": "^8.5.9", "tailwindcss": "^4.2.2", + "tsx": "^4.20.4", "typescript": "^6.0.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99ecb3e..c919663 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -114,6 +114,9 @@ importers: tailwindcss: specifier: ^4.2.2 version: 4.2.2 + tsx: + specifier: ^4.20.4 + version: 4.22.2 typescript: specifier: ^6.0.2 version: 6.0.3 @@ -2030,6 +2033,11 @@ packages: react-dom: optional: true + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fumadocs-core@16.8.0: resolution: {integrity: sha512-kO9DnhJ/8E2DNtsyDlvMFDBNH0A5V+OFJEFiGNNb/jM/zs7YdSszQ3LOPL66AnyUQ5aou7BmFyPvzJvyiDMyjg==} peerDependencies: @@ -3333,6 +3341,11 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsx@4.22.2: + resolution: {integrity: sha512-6w9FwtT8WQqRAyTNR+Z+86kghRqpmOLjXUrBlBT6T+CQGDuIMm0VmAqaFUFBIeKDTGobE6/YSigZYLeomzBaRg==} + engines: {node: '>=18.0.0'} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5460,6 +5473,9 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + fsevents@2.3.3: + optional: true + fumadocs-core@16.8.0(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(flexsearch@0.8.212)(lucide-react@1.8.0(react@19.2.5))(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6): dependencies: '@orama/orama': 3.1.18 @@ -7208,6 +7224,12 @@ snapshots: tslib@2.8.1: {} + tsx@4.22.2: + dependencies: + esbuild: 0.28.0 + optionalDependencies: + fsevents: 2.3.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 diff --git a/scripts/gen-models-table.ts b/scripts/gen-models-table.ts new file mode 100644 index 0000000..5d1d4f0 --- /dev/null +++ b/scripts/gen-models-table.ts @@ -0,0 +1,94 @@ +/** + * Regenerate src/data/ai-models.json from the Supabase ai_models catalog. + * + * pnpm gen:models + * + * The output is consumed by src/components/ai-models-table.tsx and rendered + * inside content/docs/web/models.mdx. Re-run when the catalog changes. + */ + +import { mkdir, writeFile } from 'node:fs/promises'; +import { dirname, resolve } from 'node:path'; + +function requireEnv(name: string): string { + const value = process.env[name]; + if (!value) { + console.error(`Missing ${name}. Run \`vercel env pull .env.local\` first.`); + process.exit(1); + } + return value; +} + +const SUPABASE_URL = requireEnv('NEXT_PUBLIC_SUPABASE_URL'); +const SUPABASE_ANON_KEY = requireEnv('NEXT_PUBLIC_SUPABASE_ANON_KEY'); + +const OUTPUT = resolve(process.cwd(), 'src/data/ai-models.json'); + +const SELECT = [ + 'id', + 'provider', + 'name', + 'context_length', + 'capabilities', + 'pricing_input', + 'pricing_output', + 'pricing_cache_read', + 'pricing_cache_write', + 'is_available', + 'is_hidden', + 'is_recommended', + 'recommendation_bucket', +].join(','); + +type Row = { + id: string; + provider: string; + name: string; + context_length: number | null; + capabilities: string[] | null; + pricing_input: number | null; + pricing_output: number | null; + pricing_cache_read: number | null; + pricing_cache_write: number | null; + is_available: boolean; + is_hidden: boolean; + is_recommended: boolean; + recommendation_bucket: string | null; +}; + +async function main() { + const url = new URL(`${SUPABASE_URL}/rest/v1/ai_models`); + url.searchParams.set('select', SELECT); + url.searchParams.set('is_hidden', 'eq.false'); + url.searchParams.set('is_available', 'eq.true'); + url.searchParams.set('order', 'provider.asc,name.asc'); + + const res = await fetch(url, { + headers: { + apikey: SUPABASE_ANON_KEY, + Authorization: `Bearer ${SUPABASE_ANON_KEY}`, + }, + }); + + if (!res.ok) { + throw new Error(`Supabase REST returned ${res.status} ${res.statusText}`); + } + + const rows = (await res.json()) as Row[]; + + const snapshot = { + source: `${SUPABASE_URL}/rest/v1/ai_models`, + fetched_at: new Date().toISOString(), + count: rows.length, + models: rows, + }; + + await mkdir(dirname(OUTPUT), { recursive: true }); + await writeFile(OUTPUT, JSON.stringify(snapshot, null, 2) + '\n', 'utf8'); + console.log(`Wrote ${rows.length} models to ${OUTPUT}`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/src/components/ai-models-table.tsx b/src/components/ai-models-table.tsx new file mode 100644 index 0000000..6bdbcc9 --- /dev/null +++ b/src/components/ai-models-table.tsx @@ -0,0 +1,238 @@ +'use client'; + +import { useMemo, useState } from 'react'; +import snapshot from '@/data/ai-models.json'; +import { cn } from '@/lib/cn'; + +type Model = { + id: string; + provider: string; + name: string; + context_length: number | null; + capabilities: string[] | null; + pricing_input: number | null; + pricing_output: number | null; + pricing_cache_read: number | null; + pricing_cache_write: number | null; + is_available: boolean; + is_hidden: boolean; + is_recommended: boolean; + recommendation_bucket: string | null; +}; + +type Snapshot = { + source: string; + fetched_at: string; + count: number; + models: Model[]; +}; + +const DATA = snapshot as Snapshot; + +function formatContext(value: number | null): string { + if (value == null) return '—'; + if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(value % 1_000_000 === 0 ? 0 : 1)}M`; + if (value >= 1_000) return `${Math.round(value / 1_000)}K`; + return String(value); +} + +function formatPrice(value: number | null): string { + if (value == null) return '—'; + const perMtok = value * 1_000_000; + if (perMtok >= 1) return `$${perMtok.toFixed(2)}`; + return `$${perMtok.toFixed(3).replace(/0+$/, '').replace(/\.$/, '')}`; +} + +function formatFetched(iso: string): string { + const d = new Date(iso); + return d.toISOString().slice(0, 10); +} + +export function AiModelsTable() { + const [query, setQuery] = useState(''); + const [providers, setProviders] = useState>(new Set()); + const [capabilities, setCapabilities] = useState>(new Set()); + + const allProviders = useMemo( + () => Array.from(new Set(DATA.models.map((m) => m.provider))).sort(), + [], + ); + const allCapabilities = useMemo(() => { + const caps = new Set(); + for (const m of DATA.models) { + for (const c of m.capabilities ?? []) caps.add(c); + } + return Array.from(caps).sort(); + }, []); + + const filtered = useMemo(() => { + const q = query.trim().toLowerCase(); + return DATA.models.filter((m) => { + if (providers.size > 0 && !providers.has(m.provider)) return false; + if (capabilities.size > 0) { + const caps = new Set(m.capabilities ?? []); + for (const c of capabilities) if (!caps.has(c)) return false; + } + if (q) { + const hay = `${m.id} ${m.provider} ${m.name}`.toLowerCase(); + if (!hay.includes(q)) return false; + } + return true; + }); + }, [query, providers, capabilities]); + + function toggle(set: Set, value: string): Set { + const next = new Set(set); + if (next.has(value)) next.delete(value); + else next.add(value); + return next; + } + + function clearAll() { + setQuery(''); + setProviders(new Set()); + setCapabilities(new Set()); + } + + const hasFilters = query !== '' || providers.size > 0 || capabilities.size > 0; + + return ( +
+
+
+ setQuery(e.target.value)} + placeholder="Search by model id, provider, or name…" + className="flex-1 min-w-[12rem] rounded-md border border-fd-border bg-fd-background px-3 py-1.5 text-sm focus:outline-none focus:ring-2 focus:ring-fd-ring" + /> + {hasFilters ? ( + + ) : null} +
+ + setProviders((s) => toggle(s, v))} + /> + + setCapabilities((s) => toggle(s, v))} + /> + +

+ Showing {filtered.length} of {DATA.count} models. Snapshot fetched{' '} + {formatFetched(DATA.fetched_at)}. Pricing is per million tokens. +

+
+ +
+ + + + + + + + + + + + + + {filtered.length === 0 ? ( + + + + ) : ( + filtered.map((m) => ( + + + + + + + + + + )) + )} + +
Model IDProviderNameContextCapabilitiesInput / MtokOutput / Mtok
+ No models match the current filters. +
{m.id}{m.provider}{m.name} + {formatContext(m.context_length)} + +
+ {(m.capabilities ?? []).map((c) => ( + + {c} + + ))} +
+
+ {formatPrice(m.pricing_input)} + + {formatPrice(m.pricing_output)} +
+
+
+ ); +} + +function FilterGroup({ + label, + options, + selected, + onToggle, +}: { + label: string; + options: string[]; + selected: Set; + onToggle: (value: string) => void; +}) { + return ( +
+ + {label} + + {options.map((opt) => { + const active = selected.has(opt); + return ( + + ); + })} +
+ ); +} diff --git a/src/data/ai-models.json b/src/data/ai-models.json new file mode 100644 index 0000000..1ba8e62 --- /dev/null +++ b/src/data/ai-models.json @@ -0,0 +1,1710 @@ +{ + "source": "https://enxvgkxsrpbtqlaeotjz.supabase.co/rest/v1/ai_models", + "fetched_at": "2026-05-18T21:17:53.304Z", + "count": 84, + "models": [ + { + "id": "alibaba/qwen3-max-thinking", + "provider": "alibaba", + "name": "Qwen 3 Max Thinking", + "context_length": 256000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.0000012, + "pricing_output": 0.000006, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3.5-flash", + "provider": "alibaba", + "name": "Qwen 3.5 Flash", + "context_length": 1000000, + "capabilities": [ + "vision", + "explicit-caching", + "file-input", + "reasoning", + "tool-use" + ], + "pricing_input": 1e-7, + "pricing_output": 4e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3.5-plus", + "provider": "alibaba", + "name": "Qwen 3.5 Plus", + "context_length": 1000000, + "capabilities": [ + "vision", + "explicit-caching", + "file-input", + "reasoning", + "tool-use" + ], + "pricing_input": 4e-7, + "pricing_output": 0.0000024, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3.6-27b", + "provider": "alibaba", + "name": "Qwen 3.6 27B", + "context_length": 256000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "vision" + ], + "pricing_input": 6e-7, + "pricing_output": 0.0000036, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen-3.6-max-preview", + "provider": "alibaba", + "name": "Qwen 3.6 Max Preview", + "context_length": 240000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "vision" + ], + "pricing_input": 0.0000013, + "pricing_output": 0.0000078, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3.6-plus", + "provider": "alibaba", + "name": "Qwen 3.6 Plus", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "vision", + "file-input" + ], + "pricing_input": 5e-7, + "pricing_output": 0.000003, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3-max", + "provider": "alibaba", + "name": "Qwen3 Max", + "context_length": 262144, + "capabilities": [ + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.0000012, + "pricing_output": 0.000006, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3-max-preview", + "provider": "alibaba", + "name": "Qwen3 Max Preview", + "context_length": 262144, + "capabilities": [ + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.0000012, + "pricing_output": 0.000006, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3-vl-thinking", + "provider": "alibaba", + "name": "Qwen3 VL 235B A22B Thinking", + "context_length": 131072, + "capabilities": [ + "vision", + "reasoning", + "tool-use", + "file-input" + ], + "pricing_input": 4e-7, + "pricing_output": 0.000004, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "alibaba/qwen3-235b-a22b-thinking", + "provider": "alibaba", + "name": "Qwen3 VL 235B A22B Thinking", + "context_length": 131072, + "capabilities": [ + "vision", + "reasoning", + "tool-use", + "file-input" + ], + "pricing_input": 4e-7, + "pricing_output": 0.000004, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "anthropic/claude-haiku-4.5", + "provider": "anthropic", + "name": "Claude Haiku 4.5", + "context_length": 200000, + "capabilities": [ + "file-input", + "reasoning", + "tool-use", + "vision", + "explicit-caching" + ], + "pricing_input": 0.000001, + "pricing_output": 0.000005, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "anthropic/claude-opus-4.6", + "provider": "anthropic", + "name": "Claude Opus 4.6", + "context_length": 1000000, + "capabilities": [ + "tool-use", + "reasoning", + "vision", + "file-input", + "explicit-caching", + "web-search" + ], + "pricing_input": 0.000005, + "pricing_output": 0.000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "anthropic/claude-opus-4.7", + "provider": "anthropic", + "name": "Claude Opus 4.7", + "context_length": 1000000, + "capabilities": [ + "tool-use", + "reasoning", + "vision", + "file-input", + "explicit-caching", + "web-search" + ], + "pricing_input": 0.000005, + "pricing_output": 0.000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": true, + "recommendation_bucket": "frontier" + }, + { + "id": "anthropic/claude-sonnet-4.5", + "provider": "anthropic", + "name": "Claude Sonnet 4.5", + "context_length": 1000000, + "capabilities": [ + "file-input", + "reasoning", + "tool-use", + "vision", + "explicit-caching" + ], + "pricing_input": 0.000003, + "pricing_output": 0.000015, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "anthropic/claude-sonnet-4.6", + "provider": "anthropic", + "name": "Claude Sonnet 4.6", + "context_length": 1000000, + "capabilities": [ + "file-input", + "reasoning", + "tool-use", + "vision", + "explicit-caching", + "web-search" + ], + "pricing_input": 0.000003, + "pricing_output": 0.000015, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": true, + "recommendation_bucket": "frontier" + }, + { + "id": "arcee-ai/trinity-large-thinking", + "provider": "arcee-ai", + "name": "Trinity Large Thinking", + "context_length": 262100, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 2.5e-7, + "pricing_output": 9e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "bytedance/seed-1.6", + "provider": "bytedance", + "name": "Seed 1.6", + "context_length": 256000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 2.5e-7, + "pricing_output": 0.000002, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "provider": "deepseek", + "name": "DeepSeek V3.1 Terminus", + "context_length": 131072, + "capabilities": [ + "reasoning", + "tool-use" + ], + "pricing_input": 2.7e-7, + "pricing_output": 0.000001, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "deepseek/deepseek-v3.2", + "provider": "deepseek", + "name": "DeepSeek V3.2", + "context_length": 128000, + "capabilities": [ + "tool-use", + "implicit-caching" + ], + "pricing_input": 2.8e-7, + "pricing_output": 4.2e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "deepseek/deepseek-v3.2-thinking", + "provider": "deepseek", + "name": "DeepSeek V3.2 Thinking", + "context_length": 128000, + "capabilities": [ + "tool-use" + ], + "pricing_input": 6.2e-7, + "pricing_output": 0.00000185, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "deepseek/deepseek-v4-flash", + "provider": "deepseek", + "name": "DeepSeek V4 Flash", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 1.4e-7, + "pricing_output": 2.8e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "deepseek/deepseek-v4-pro", + "provider": "deepseek", + "name": "DeepSeek V4 Pro", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 4.35e-7, + "pricing_output": 8.7e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "deepseek/deepseek-v3.1", + "provider": "deepseek", + "name": "DeepSeek-V3.1", + "context_length": 163840, + "capabilities": [ + "reasoning", + "tool-use" + ], + "pricing_input": 5.6e-7, + "pricing_output": 0.00000168, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemini-3-flash", + "provider": "google", + "name": "Gemini 3 Flash", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "file-input", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 5e-7, + "pricing_output": 0.000003, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemini-3-pro-preview", + "provider": "google", + "name": "Gemini 3 Pro Preview", + "context_length": 1000000, + "capabilities": [ + "file-input", + "tool-use", + "reasoning", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 0.000002, + "pricing_output": 0.000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemini-3.1-flash-lite", + "provider": "google", + "name": "Gemini 3.1 Flash Lite", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "vision", + "web-search" + ], + "pricing_input": 2.5e-7, + "pricing_output": 0.0000015, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemini-3.1-flash-lite-preview", + "provider": "google", + "name": "Gemini 3.1 Flash Lite Preview", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "vision", + "file-input", + "web-search" + ], + "pricing_input": 2.5e-7, + "pricing_output": 0.0000015, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemini-3.1-pro-preview", + "provider": "google", + "name": "Gemini 3.1 Pro Preview", + "context_length": 1000000, + "capabilities": [ + "file-input", + "tool-use", + "reasoning", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 0.000002, + "pricing_output": 0.000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemma-4-26b-a4b-it", + "provider": "google", + "name": "Gemma 4 26B A4B IT", + "context_length": 262144, + "capabilities": [ + "vision", + "tool-use", + "file-input" + ], + "pricing_input": 1.3e-7, + "pricing_output": 4e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "google/gemma-4-31b-it", + "provider": "google", + "name": "Gemma 4 31B IT", + "context_length": 262144, + "capabilities": [ + "tool-use", + "vision", + "file-input" + ], + "pricing_input": 1.4e-7, + "pricing_output": 4e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "inception/mercury-2", + "provider": "inception", + "name": "Mercury 2", + "context_length": 128000, + "capabilities": [ + "tool-use", + "reasoning" + ], + "pricing_input": 2.5e-7, + "pricing_output": 7.5e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "kwaipilot/kat-coder-pro-v2", + "provider": "kwaipilot", + "name": "Kat Coder Pro V2", + "context_length": 256000, + "capabilities": [ + "tool-use", + "reasoning", + "implicit-caching" + ], + "pricing_input": 3e-7, + "pricing_output": 0.0000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "meituan/longcat-flash-chat", + "provider": "meituan", + "name": "LongCat Flash Chat", + "context_length": 128000, + "capabilities": [ + "tool-use" + ], + "pricing_input": null, + "pricing_output": null, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "minimax/minimax-m2", + "provider": "minimax", + "name": "MiniMax M2", + "context_length": 205000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 3e-7, + "pricing_output": 0.0000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "minimax/minimax-m2.1", + "provider": "minimax", + "name": "MiniMax M2.1", + "context_length": 204800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 3e-7, + "pricing_output": 0.0000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "minimax/minimax-m2.1-lightning", + "provider": "minimax", + "name": "MiniMax M2.1 Lightning", + "context_length": 204800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 3e-7, + "pricing_output": 0.0000024, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "minimax/minimax-m2.5", + "provider": "minimax", + "name": "MiniMax M2.5", + "context_length": 204800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 3e-7, + "pricing_output": 0.0000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": true, + "recommendation_bucket": "open" + }, + { + "id": "minimax/minimax-m2.5-highspeed", + "provider": "minimax", + "name": "MiniMax M2.5 High Speed", + "context_length": 204800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 6e-7, + "pricing_output": 0.0000024, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "minimax/minimax-m2.7", + "provider": "minimax", + "name": "Minimax M2.7", + "context_length": 204800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "vision" + ], + "pricing_input": 3e-7, + "pricing_output": 0.0000012, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": true, + "recommendation_bucket": "open" + }, + { + "id": "minimax/minimax-m2.7-highspeed", + "provider": "minimax", + "name": "MiniMax M2.7 High Speed", + "context_length": 204800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "vision" + ], + "pricing_input": 6e-7, + "pricing_output": 0.0000024, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "mistral/devstral-2", + "provider": "mistral", + "name": "Devstral 2", + "context_length": 256000, + "capabilities": [ + "tool-use" + ], + "pricing_input": 4e-7, + "pricing_output": 0.000002, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "moonshotai/kimi-k2", + "provider": "moonshotai", + "name": "Kimi K2 Instruct", + "context_length": 131072, + "capabilities": [ + "tool-use" + ], + "pricing_input": 5.7e-7, + "pricing_output": 0.0000023, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "moonshotai/kimi-k2-thinking", + "provider": "moonshotai", + "name": "Kimi K2 Thinking", + "context_length": 262114, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 6e-7, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "moonshotai/kimi-k2-thinking-turbo", + "provider": "moonshotai", + "name": "Kimi K2 Thinking Turbo", + "context_length": 262114, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.00000115, + "pricing_output": 0.000008, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "moonshotai/kimi-k2-turbo", + "provider": "moonshotai", + "name": "Kimi K2 Turbo", + "context_length": 256000, + "capabilities": [ + "tool-use" + ], + "pricing_input": 0.00000115, + "pricing_output": 0.000008, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "moonshotai/kimi-k2.5", + "provider": "moonshotai", + "name": "Kimi K2.5", + "context_length": 262114, + "capabilities": [ + "reasoning", + "vision", + "tool-use", + "implicit-caching" + ], + "pricing_input": 6e-7, + "pricing_output": 0.000003, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "moonshotai/kimi-k2.6", + "provider": "moonshotai", + "name": "Kimi K2.6", + "context_length": 262000, + "capabilities": [ + "reasoning", + "tool-use", + "vision", + "file-input", + "implicit-caching" + ], + "pricing_input": 9.5e-7, + "pricing_output": 0.000004, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.1-codex-max", + "provider": "openai", + "name": "GPT 5.1 Codex Max", + "context_length": 400000, + "capabilities": [ + "reasoning", + "file-input", + "tool-use", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.00001, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.1-codex-mini", + "provider": "openai", + "name": "GPT 5.1 Codex Mini", + "context_length": 400000, + "capabilities": [ + "reasoning", + "file-input", + "vision", + "tool-use", + "web-search", + "implicit-caching" + ], + "pricing_input": 2.5e-7, + "pricing_output": 0.000002, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.1-thinking", + "provider": "openai", + "name": "GPT 5.1 Thinking", + "context_length": 400000, + "capabilities": [ + "tool-use", + "implicit-caching", + "file-input", + "reasoning", + "vision", + "web-search", + "image-generation" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.00001, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.2", + "provider": "openai", + "name": "GPT 5.2", + "context_length": 400000, + "capabilities": [ + "tool-use", + "vision", + "file-input", + "reasoning", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00000175, + "pricing_output": 0.000014, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.2-chat", + "provider": "openai", + "name": "GPT 5.2 Chat", + "context_length": 128000, + "capabilities": [ + "vision", + "file-input", + "tool-use", + "reasoning", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00000175, + "pricing_output": 0.000014, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.2-codex", + "provider": "openai", + "name": "GPT 5.2 Codex", + "context_length": 400000, + "capabilities": [ + "file-input", + "tool-use", + "reasoning", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 0.00000175, + "pricing_output": 0.000014, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.3-codex", + "provider": "openai", + "name": "GPT 5.3 Codex", + "context_length": 400000, + "capabilities": [ + "reasoning", + "tool-use", + "file-input", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 0.00000175, + "pricing_output": 0.000014, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.4", + "provider": "openai", + "name": "GPT 5.4", + "context_length": 1050000, + "capabilities": [ + "reasoning", + "tool-use", + "vision", + "file-input", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.0000025, + "pricing_output": 0.000015, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.4-mini", + "provider": "openai", + "name": "GPT 5.4 Mini", + "context_length": 400000, + "capabilities": [ + "reasoning", + "tool-use", + "vision", + "file-input", + "implicit-caching", + "web-search" + ], + "pricing_input": 7.5e-7, + "pricing_output": 0.0000045, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.4-nano", + "provider": "openai", + "name": "GPT 5.4 Nano", + "context_length": 400000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "web-search", + "vision", + "file-input" + ], + "pricing_input": 2e-7, + "pricing_output": 0.00000125, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.4-pro", + "provider": "openai", + "name": "GPT 5.4 Pro", + "context_length": 1050000, + "capabilities": [ + "reasoning", + "tool-use", + "vision", + "file-input", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00003, + "pricing_output": 0.00018, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.5", + "provider": "openai", + "name": "GPT 5.5", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "web-search", + "implicit-caching", + "file-input", + "vision" + ], + "pricing_input": 0.000005, + "pricing_output": 0.00003, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.5-pro", + "provider": "openai", + "name": "GPT 5.5 Pro", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "web-search", + "vision" + ], + "pricing_input": 0.00003, + "pricing_output": 0.00018, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5-codex", + "provider": "openai", + "name": "GPT-5-Codex", + "context_length": 400000, + "capabilities": [ + "file-input", + "implicit-caching", + "reasoning", + "tool-use", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.00001, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.1-instant", + "provider": "openai", + "name": "GPT-5.1 Instant", + "context_length": 128000, + "capabilities": [ + "tool-use", + "vision", + "file-input", + "reasoning", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.00001, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.1-codex", + "provider": "openai", + "name": "GPT-5.1-Codex", + "context_length": 400000, + "capabilities": [ + "file-input", + "tool-use", + "reasoning", + "vision", + "web-search", + "implicit-caching" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.00001, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "openai/gpt-5.3-chat", + "provider": "openai", + "name": "GPT-5.3 Chat", + "context_length": 128000, + "capabilities": [ + "vision", + "file-input", + "tool-use", + "reasoning", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00000175, + "pricing_output": 0.000014, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.20-non-reasoning-beta", + "provider": "xai", + "name": "Grok 4.20 Beta Non-Reasoning", + "context_length": 2000000, + "capabilities": [ + "tool-use", + "implicit-caching", + "vision", + "file-input", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.20-reasoning-beta", + "provider": "xai", + "name": "Grok 4.20 Beta Reasoning", + "context_length": 2000000, + "capabilities": [ + "reasoning", + "tool-use", + "vision", + "file-input", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.20-multi-agent-beta", + "provider": "xai", + "name": "Grok 4.20 Multi Agent Beta", + "context_length": 2000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "vision", + "file-input", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.20-multi-agent", + "provider": "xai", + "name": "Grok 4.20 Multi-Agent", + "context_length": 2000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "vision", + "file-input", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.20-non-reasoning", + "provider": "xai", + "name": "Grok 4.20 Non-Reasoning", + "context_length": 2000000, + "capabilities": [ + "tool-use", + "implicit-caching", + "vision", + "file-input", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.20-reasoning", + "provider": "xai", + "name": "Grok 4.20 Reasoning", + "context_length": 2000000, + "capabilities": [ + "reasoning", + "vision", + "tool-use", + "file-input", + "implicit-caching", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xai/grok-4.3", + "provider": "xai", + "name": "Grok 4.3", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "vision", + "web-search" + ], + "pricing_input": 0.00000125, + "pricing_output": 0.0000025, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xiaomi/mimo-v2.5", + "provider": "xiaomi", + "name": "MiMo M2.5", + "context_length": 1050000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "file-input", + "vision" + ], + "pricing_input": 4e-7, + "pricing_output": 0.000002, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xiaomi/mimo-v2-flash", + "provider": "xiaomi", + "name": "MiMo V2 Flash", + "context_length": 262144, + "capabilities": [ + "reasoning", + "tool-use" + ], + "pricing_input": 1e-7, + "pricing_output": 3e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xiaomi/mimo-v2-pro", + "provider": "xiaomi", + "name": "MiMo V2 Pro", + "context_length": 1000000, + "capabilities": [ + "reasoning", + "tool-use" + ], + "pricing_input": 0.000001, + "pricing_output": 0.000003, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "xiaomi/mimo-v2.5-pro", + "provider": "xiaomi", + "name": "MiMo V2.5 Pro", + "context_length": 1050000, + "capabilities": [ + "reasoning", + "tool-use", + "vision", + "file-input", + "implicit-caching" + ], + "pricing_input": 0.000001, + "pricing_output": 0.000003, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-4.6", + "provider": "zai", + "name": "GLM 4.6", + "context_length": 200000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 6e-7, + "pricing_output": 0.0000022, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-4.7", + "provider": "zai", + "name": "GLM 4.7", + "context_length": 131000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.00000225, + "pricing_output": 0.00000275, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-4.7-flash", + "provider": "zai", + "name": "GLM 4.7 Flash", + "context_length": 200000, + "capabilities": [ + "reasoning", + "tool-use" + ], + "pricing_input": 7e-8, + "pricing_output": 4e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-5", + "provider": "zai", + "name": "GLM 5", + "context_length": 202800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.000001, + "pricing_output": 0.0000032, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-5-turbo", + "provider": "zai", + "name": "GLM 5 Turbo", + "context_length": 202800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.0000012, + "pricing_output": 0.000004, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-5.1", + "provider": "zai", + "name": "GLM 5.1", + "context_length": 202800, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 0.0000014, + "pricing_output": 0.0000044, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-5v-turbo", + "provider": "zai", + "name": "GLM 5V Turbo", + "context_length": 200000, + "capabilities": [ + "reasoning", + "tool-use", + "implicit-caching", + "vision", + "file-input" + ], + "pricing_input": 0.0000012, + "pricing_output": 0.000004, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-4.6v", + "provider": "zai", + "name": "GLM-4.6V", + "context_length": 128000, + "capabilities": [ + "vision", + "file-input", + "reasoning", + "tool-use", + "implicit-caching" + ], + "pricing_input": 3e-7, + "pricing_output": 9e-7, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + }, + { + "id": "zai/glm-4.6v-flash", + "provider": "zai", + "name": "GLM-4.6V-Flash", + "context_length": 128000, + "capabilities": [ + "vision", + "reasoning", + "file-input", + "tool-use", + "implicit-caching" + ], + "pricing_input": null, + "pricing_output": null, + "pricing_cache_read": null, + "pricing_cache_write": null, + "is_available": true, + "is_hidden": false, + "is_recommended": false, + "recommendation_bucket": null + } + ] +}