@broberg/ai-sdk 0.64.1 → 0.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,449 @@
1
+ import {
2
+ PRICING,
3
+ stripDatedSuffix
4
+ } from "./chunk-BWBRED4O.js";
5
+
6
+ // src/cost/media-pricing.ts
7
+ var MEDIA_PRICING_CHECKED_AT = "2026-10-11";
8
+ var VEO_PER_SEC = {
9
+ "veo-3.1-generate-preview": { usd: 0.4, source: "ai.google.dev/gemini-api/docs/pricing \u2014 video with audio, 720p/1080p (4K = 0.60)" },
10
+ "veo-3.1-fast-generate-preview": { usd: 0.1, source: "ai.google.dev/gemini-api/docs/pricing \u2014 720p (1080p = 0.12, 4K = 0.30)" },
11
+ "veo-3.1-lite-generate-preview": { usd: 0.05, source: "ai.google.dev/gemini-api/docs/pricing \u2014 720p (1080p = 0.08)" },
12
+ "veo-3.0-generate-001": { usd: 0.4, source: "ai.google.dev/gemini-api/docs/pricing" },
13
+ "veo-3.0-fast-generate-001": { usd: 0.1, source: "ai.google.dev/gemini-api/docs/pricing" }
14
+ };
15
+ var veoRows = (provider) => Object.fromEntries(
16
+ Object.entries(VEO_PER_SEC).map(([model, v]) => [
17
+ `${provider}:${model}`,
18
+ { unit: "per_sec", usd: v.usd, checkedAt: MEDIA_PRICING_CHECKED_AT, source: v.source }
19
+ ])
20
+ );
21
+ var MEDIA_PRICING = {
22
+ ...veoRows("gemini"),
23
+ ...veoRows("vertex"),
24
+ // fal video — fal's OFFICIAL published per-second rate, not a guess. Kling 2.5
25
+ // Turbo Pro i2v is the blessed FAL_KEY-only image→video route: $0.35 for the
26
+ // first 5 s + $0.07/additional s = a flat $0.07/s at 1080p.
27
+ "fal:fal-ai/kling-video/v2.5-turbo/pro/image-to-video": {
28
+ unit: "per_sec",
29
+ usd: 0.07,
30
+ checkedAt: MEDIA_PRICING_CHECKED_AT,
31
+ source: "fal.ai/models/fal-ai/kling-video/v2.5-turbo/pro/image-to-video"
32
+ },
33
+ // fal images — ESTIMATES. fal bills by megapixel and changes often; fal returns
34
+ // no price with the result, so a call costed from these carries
35
+ // `costBasis: "estimated"`. Override per call with config.pricePerImage.
36
+ "fal:fal-ai/flux/schnell": { unit: "per_image", usd: 3e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "fal.ai pricing \u2014 estimate, billed by megapixel" },
37
+ "fal:fal-ai/flux/dev": { unit: "per_image", usd: 0.025, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "fal.ai pricing \u2014 estimate, billed by megapixel" },
38
+ "fal:fal-ai/flux-lora": { unit: "per_image", usd: 0.035, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "fal.ai/models/fal-ai/flux-lora \u2014 $0.035/MP (was 0.025 until 2026-10-11), billed by megapixel" },
39
+ "fal:fal-ai/flux-pro": { unit: "per_image", usd: 0.05, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "fal.ai pricing \u2014 estimate, billed by megapixel" },
40
+ "fal:fal-ai/flux-pro/v1.1": { unit: "per_image", usd: 0.04, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "fal.ai pricing \u2014 estimate, billed by megapixel" },
41
+ // F079 — FLUX 3 Video on api.eu.bfl.ai. Fallback only: BFL reports the settled cost
42
+ // in get_result. MEASURED 20/10 2026: a 5 s hd i2v clip settled at 75 credits = $0.75.
43
+ // Higher resolutions (fhd/qhd/uhd) are not measured and cost more.
44
+ "bfl:flux-3-video": {
45
+ unit: "per_sec",
46
+ usd: 0.15,
47
+ checkedAt: MEDIA_PRICING_CHECKED_AT,
48
+ source: "measured 2026-10-20: get_result cost 75 credits for a 5 s hd clip (hd only)"
49
+ },
50
+ // BFL — the fallback only. BFL RETURNS the real billed cost in credits, so a
51
+ // normal call is `costBasis: "reported"` and never reads this row.
52
+ "bfl:flux-pro-1.1-ultra-finetuned": {
53
+ unit: "per_image",
54
+ usd: 0.06,
55
+ checkedAt: MEDIA_PRICING_CHECKED_AT,
56
+ source: "bfl.ai/pricing \u2014 estimate; used only when BFL omits the credit cost"
57
+ },
58
+ // Gemini images — billed per image, not per token. Google's price RISES with
59
+ // resolution; these are the common 1K/1024px default.
60
+ "gemini:gemini-2.5-flash-image": { unit: "per_image", usd: 0.039, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "ai.google.dev/gemini-api/docs/pricing \u2014 'nano-banana', 1024px = 1290 tok" },
61
+ "gemini:gemini-3.1-flash-image": { unit: "per_image", usd: 0.067, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "ai.google.dev/gemini-api/docs/pricing \u2014 1K; 2K=0.101, 4K=0.151" },
62
+ "gemini:gemini-3.1-flash-image-preview": { unit: "per_image", usd: 0.067, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "ai.google.dev/gemini-api/docs/pricing \u2014 1K; 2K=0.101, 4K=0.151" },
63
+ "gemini:gemini-3-pro-image": { unit: "per_image", usd: 0.134, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "ai.google.dev/gemini-api/docs/pricing \u2014 premium; 1K/2K=0.134, 4K=0.24" },
64
+ "gemini:gemini-3-pro-image-preview": { unit: "per_image", usd: 0.134, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "ai.google.dev/gemini-api/docs/pricing \u2014 premium; was mistakenly the flash price once" },
65
+ // OpenRouter images — the FALLBACK only. OpenRouter usually returns usage.cost.
66
+ "openrouter:recraft/recraft-v4.1": { unit: "per_image", usd: 0.035, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "openrouter.ai/recraft/recraft-v4.1 \u2014 fallback when usage.cost is omitted" },
67
+ "openrouter:recraft/recraft-v4.1-vector": { unit: "per_image", usd: 0.08, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "openrouter.ai/recraft/recraft-v4.1-vector \u2014 fallback when usage.cost is omitted" },
68
+ // F063: OpenRouter prices Recraft per image-token; both rows above are that rate
69
+ // x 4175 tokens/image exactly, so these use the same factor (measured 27/9 off
70
+ // /api/v1/models?output_modalities=image).
71
+ "openrouter:recraft/recraft-v4.1-pro-vector": { unit: "per_image", usd: 0.3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "openrouter.ai/api/v1/models, measured 2026-09-27 \u2014 image_token 7.186e-5 x 4175; fallback when usage.cost is omitted" },
72
+ "openrouter:recraft/recraft-v4.1-pro": { unit: "per_image", usd: 0.21, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "openrouter.ai/api/v1/models, measured 2026-09-27 \u2014 image_token 5.030e-5 x 4175; fallback when usage.cost is omitted" },
73
+ // Speech OUT — billed per 1000 characters of input text.
74
+ "azure:tts": { unit: "per_1k_chars", usd: 0.015, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "prices.azure.com retail API, westeurope \u2014 S1 Neural TTS $15/1M chars (HD voices $22/1M)" },
75
+ "elevenlabs:tts": { unit: "per_1k_chars", usd: 0.08, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "elevenlabs.io/pricing/api \u2014 v3 Text to Speech $0.08/1k chars (the adapter uses eleven_v3)" },
76
+ // Translation — per 1000 characters. Free tier (":fx" key, within quota) is truly $0;
77
+ // this rate only bites past the Pro allowance.
78
+ "deepl:translate": { unit: "per_1k_chars", usd: 0.0217, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "deepl.com/pro-api \u2014 ESTIMATE, conflicting tier reports; verify before a budget decision" },
79
+ // Speech IN — billed per audio-minute.
80
+ "azure:stt": { unit: "per_min", usd: 6e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "prices.azure.com retail API, westeurope \u2014 Fast Transcription $0.36/hour; the adapter calls transcriptions:transcribe (fast). $1/h was the real-time rate we do not use" },
81
+ "openai:whisper-1": { unit: "per_min", usd: 6e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "openai.com/api/pricing \u2014 Whisper" },
82
+ "mistral:voxtral-mini-latest": { unit: "per_min", usd: 3e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "docs.mistral.ai/models/voxtral-mini-transcribe-26-02 \u2014 alias of voxtral-mini-2602, $0.003/min" },
83
+ "mistral:voxtral-mini-2507": { unit: "per_min", usd: 2e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "mistral.ai/pricing \u2014 Voxtral; deprecated 2026-02-27, docs no longer show a price (NOT re-verifiable 2026-10-11)" },
84
+ "mistral:voxtral-mini-2602": { unit: "per_min", usd: 3e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "docs.mistral.ai/models/voxtral-mini-transcribe-26-02 \u2014 $0.003/min (was 0.002 until 2026-10-11)" },
85
+ // OCR — per page.
86
+ "mistral:ocr": { unit: "per_page", usd: 4e-3, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "Mistral mail 2026-09-30 (OCR 4.1): $4/1000 pages direct; $2/1000 is the Batch-API price, which ai.ocr does not use" },
87
+ // A flat fee per training run, not per anything produced.
88
+ "fal:train": { unit: "per_training", usd: 2, checkedAt: MEDIA_PRICING_CHECKED_AT, source: "fal.ai/models/fal-ai/flux-lora-fast-training \u2014 approx $2, ESTIMATE" }
89
+ };
90
+ var DEFAULT_CLIP_SEC = 8;
91
+ function getMediaPrice(provider, model) {
92
+ return MEDIA_PRICING[`${provider}:${model}`];
93
+ }
94
+ function mediaUnitCounts() {
95
+ const counts = {
96
+ per_sec: 0,
97
+ per_image: 0,
98
+ per_1k_chars: 0,
99
+ per_min: 0,
100
+ per_page: 0,
101
+ per_training: 0
102
+ };
103
+ for (const p of Object.values(MEDIA_PRICING)) counts[p.unit]++;
104
+ return counts;
105
+ }
106
+
107
+ // src/catalogue/pricing-data.ts
108
+ var PRICING_GENERATED_AT = "2026-10-20T11:06:01.218Z";
109
+ var PRICING_CHECKED_AT = "2026-10-20T11:06:01.218Z";
110
+ var PRICING_DATA = [{ "provider": "minimax", "model": "minimax/minimax-m3.1-flash:free", "name": "MiniMax: MiniMax M3.1 Flash (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4.1-flash-1017", "name": "DeepSeek: DeepSeek V4.1 Flash 1017", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "elorian", "model": "elorian/glimpse", "name": "Elorian: Glimpse", "input": 0.6, "output": 3, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "xingchen-agi", "model": "xingchen-agi/xing4.0-29b-a4b:free", "name": "XingChen: Xing4.0 29B A4B (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "reflection", "model": "reflection/beam-1.0-501b-a23b", "name": "Reflection: Beam 1.0 501B A23B", "input": 0.3, "output": 1, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "inception", "model": "inception/mercury-3", "name": "Inception: Mercury 3", "input": 0.1, "output": 0.35, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "moondream", "model": "moondream/moondream3-preview", "name": "Moondream: Moondream 3 Preview", "input": 0.3, "output": 2.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "moondream", "model": "moondream/moondream3.1-9b-a2b", "name": "Moondream: Moondream 3.1", "input": 0.3, "output": 2.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "meta", "model": "meta/muse-spark-open", "name": "Meta: Muse Spark Open", "input": 1.25, "output": 4.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3.5-super-vl", "name": "NVIDIA: Nemotron 3.5 Super VL", "input": 0.15, "output": 0.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3.5-super-vl:free", "name": "NVIDIA: Nemotron 3.5 Super VL (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "unbiased", "model": "unbiased/pareto-26.10", "name": "Pareto 26.10", "input": 0.8, "output": 3.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~unbiased", "model": "~unbiased/pareto-latest", "name": "Pareto Latest", "input": 0.8, "output": 3.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "unbiased", "model": "unbiased/pareto-26.9", "name": "Pareto 26.9", "input": 2.5, "output": 7.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "liquid", "model": "liquid/lfm-2.5-24b-a2b", "name": "LiquidAI: LFM2.5-24B-A2B", "input": 0.05, "output": 0.7, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-4-argon", "name": "Google: Gemini 4 Argon", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-4-argon:batch", "name": "Google: Gemini 4 Argon (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "scaledown", "model": "scaledown/summarize", "name": "ScaleDown: Summarize", "input": 0.04, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "scaledown", "model": "scaledown/extract", "name": "ScaleDown: Extract", "input": 0.04, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "meta", "model": "meta/muse-wonder", "name": "Meta: Muse Wonder", "input": 4, "output": 20, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "stepfun", "model": "stepfun/step-5-preview", "name": "StepFun: Step 5 Preview", "input": 1, "output": 2.7, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-haiku-5.5", "name": "Anthropic: Claude Haiku 5.5", "input": 0.1, "output": 0.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-haiku-5.5:batch", "name": "Anthropic: Claude Haiku 5.5 (batch)", "input": 0.05, "output": 0.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-nano-banana-2.1", "name": "Google: Nano Banana 2.1", "input": 1.5, "output": 7.5, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "mistralai", "model": "mistralai/mistral-large-4-0", "name": "Mistral: Mistral Large 4", "input": 0.68, "output": 2.09, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "inclusionai", "model": "inclusionai/ling-3.1-flash", "name": "inclusionAI: Ling 3.1 Flash", "input": 0.075, "output": 0.225, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6.1-sol-pro", "name": "OpenAI: GPT-6.1 Sol Pro", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6.1-sol-pro:batch", "name": "OpenAI: GPT-6.1 Sol Pro (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6.1-sol", "name": "OpenAI: GPT-6.1 Sol", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6.1-sol:batch", "name": "OpenAI: GPT-6.1 Sol (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-5.5", "name": "Anthropic: Claude Sonnet 5.5", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-5.5:batch", "name": "Anthropic: Claude Sonnet 5.5 (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "typesafe", "model": "typesafe/jev-router", "name": "TypeSafe: Jev Router", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "perceptron", "model": "perceptron/perceptron-mk1.5", "name": "Perceptron: Perceptron Mk1.5", "input": 0.15, "output": 1.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "fireworks", "model": "fireworks/ember-1", "name": "Fireworks: Ember-1", "input": 3, "output": 15, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.3-prime", "name": "Z.ai: GLM 5.3 Prime", "input": 2.8, "output": 8.8, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.8-max-prime", "name": "Qwen: Qwen3.8 Max Prime", "input": 4, "output": 12, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "aion-labs", "model": "aion-labs/aion-3.5-mini", "name": "AionLabs: Aion 3.5 Mini", "input": 0.7, "output": 1.4, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "aion-labs", "model": "aion-labs/aion-3.5", "name": "AionLabs: Aion 3.5", "input": 3, "output": 6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "upstage", "model": "upstage/solar-mini4", "name": "Upstage: Solar Mini 4", "input": 0.05, "output": 0.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "cohere", "model": "cohere/command-a-plus", "name": "Cohere: Command A+", "input": 0.3, "output": 1.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-luna-pro", "name": "OpenAI: GPT-6 Luna Pro", "input": 0.1, "output": 0.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-luna-pro:batch", "name": "OpenAI: GPT-6 Luna Pro (batch)", "input": 0.05, "output": 0.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-luna", "name": "OpenAI: GPT-6 Luna", "input": 0.1, "output": 0.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-luna:batch", "name": "OpenAI: GPT-6 Luna (batch)", "input": 0.05, "output": 0.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-sol-pro", "name": "OpenAI: GPT-6 Sol Pro", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-sol-pro:batch", "name": "OpenAI: GPT-6 Sol Pro (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-sol", "name": "OpenAI: GPT-6 Sol", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-sol:batch", "name": "OpenAI: GPT-6 Sol (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-5.5", "name": "Anthropic: Claude Opus 5.5", "input": 4, "output": 20, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-5.5:batch", "name": "Anthropic: Claude Opus 5.5 (batch)", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/switchyard", "name": "NVIDIA: Switchyard", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "xiaomi", "model": "xiaomi/mimo-v2.6-pro-ultraspeed", "name": "Xiaomi: MiMo-V2.6-Pro-UltraSpeed", "input": 4.35, "output": 8.7, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "xiaomi", "model": "xiaomi/mimo-v2.6-flash", "name": "Xiaomi: MiMo-V2.6-Flash", "input": 0.14, "output": 0.28, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "xiaomi", "model": "xiaomi/mimo-v2.6-pro", "name": "Xiaomi: MiMo-V2.6-Pro", "input": 0.435, "output": 0.87, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.7", "name": "SpaceXAI: Grok 4.7", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.8-omni-flash", "name": "Qwen: Qwen3.8 Omni Flash", "input": 0.15, "output": 0.47, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "prism-ml", "model": "prism-ml/ternary-bonsai-2-27b", "name": "PrismML: Ternary Bonsai 2 27B", "input": 0.075, "output": 0.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.3-flashx", "name": "Z.ai: GLM 5.3 FlashX", "input": 0.37, "output": 1.25, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "~deepseek", "model": "~deepseek/deepseek-pro-latest", "name": "DeepSeek: DeepSeek Pro Latest", "input": 0.225, "output": 8, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~deepseek", "model": "~deepseek/deepseek-flash-latest", "name": "DeepSeek: DeepSeek Flash Latest", "input": 0.07, "output": 0.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "inference-net", "model": "inference-net/schematron-v2-turbo", "name": "Inference.net: Schematron V2 Turbo", "input": 0.03, "output": 0.15, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "inference-net", "model": "inference-net/schematron-v2-small", "name": "Inference.net: Schematron V2 Small", "input": 0.05, "output": 0.23, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~openai", "model": "~openai/gpt-astra-latest", "name": "OpenAI: GPT Astra Latest", "input": 10, "output": 50, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~openai", "model": "~openai/gpt-sol-latest", "name": "OpenAI: GPT Sol Latest", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~openai", "model": "~openai/gpt-terra-latest", "name": "OpenAI: GPT Terra Latest", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~openai", "model": "~openai/gpt-luna-latest", "name": "OpenAI: GPT Luna Latest", "input": 0.1, "output": 0.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "sakana", "model": "sakana/fugu-ultra-v2", "name": "Sakana: Fugu Ultra v2", "input": 5, "output": 30, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "sakana", "model": "sakana/fugu-max", "name": "Sakana: Fugu Max", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "inclusionai", "model": "inclusionai/ling-3.0-flash-vl", "name": "inclusionAI: Ling 3.0 Flash VL", "input": 0.06, "output": 0.18, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4.1-flash", "name": "DeepSeek: DeepSeek V4.1 Flash", "input": 0.056, "output": 0.12, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4.1-flash:batch", "name": "DeepSeek: DeepSeek V4.1 Flash (batch)", "input": 0.05, "output": 0.15, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "inception", "model": "inception/mercury-2.5", "name": "Inception: Mercury 2.5", "input": 0.04, "output": 0.15, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "nex-agi", "model": "nex-agi/nex-n2.5-mini", "name": "Nex AGI: Nex-N2.5-Mini", "input": 0.025, "output": 0.1, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "nex-agi", "model": "nex-agi/nex-n2.5-pro", "name": "Nex AGI: Nex-N2.5-Pro", "input": 0.075, "output": 0.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-astra", "name": "OpenAI: GPT-6 Astra", "input": 10, "output": 50, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-astra:batch", "name": "OpenAI: GPT-6 Astra (batch)", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-astra-pro", "name": "OpenAI: GPT-6 Astra Pro", "input": 10, "output": 50, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-6-astra-pro:batch", "name": "OpenAI: GPT-6 Astra Pro (batch)", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.8-max-0902", "name": "Qwen: Qwen3.8 Max (0902)", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "meta", "model": "meta/muse-spark-1.3-contributor", "name": "Meta: Muse Spark 1.3 Contributor", "input": 0.1, "output": 0.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "meta", "model": "meta/muse-spark-1.3", "name": "Meta: Muse Spark 1.3", "input": 1.25, "output": 4.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.8-flash", "name": "Google: Gemini 3.8 Flash", "input": 0.825, "output": 4.125, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.8-flash:batch", "name": "Google: Gemini 3.8 Flash (batch)", "input": 0.375, "output": 1.875, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-fable-5.1", "name": "Anthropic: Claude Fable 5.1", "input": 10, "output": 50, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-fable-5.1:batch", "name": "Anthropic: Claude Fable 5.1 (batch)", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "ibm-granite", "model": "ibm-granite/granite-4.2-8b", "name": "IBM: Granite 4.2 8B", "input": 0.06, "output": 0.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "tencent", "model": "tencent/hy4-preview", "name": "Tencent: Hy4 preview", "input": 0.834, "output": 2.501, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~z-ai", "model": "~z-ai/glm-flash-latest", "name": "Z.ai: GLM Flash Latest", "input": 0.037476, "output": 0.16, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.8-flash", "name": "Qwen: Qwen3.8 Flash", "input": 0.15, "output": 0.47, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.3-flash", "name": "Z.ai: GLM 5.3 Flash", "input": 0.037476, "output": 0.16, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.3-flash:batch", "name": "Z.ai: GLM 5.3 Flash (batch)", "input": 0.05, "output": 0.18, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "meta", "model": "meta/muse-spark-1.2-contributor", "name": "Meta: Muse Spark 1.2 Contributor", "input": 0.1, "output": 0.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4-flash-vision-exp", "name": "DeepSeek: DeepSeek V4 Flash Vision Exp", "input": 0.2156, "output": 0.6468, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "tencent", "model": "tencent/hy-mt2-1.8b", "name": "Tencent: Hy-MT2-1.8B", "input": 0.044, "output": 0.177, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "tencent", "model": "tencent/hy-mt2-30b-a3b", "name": "Tencent: Hy-MT2-30B-A3B", "input": 0.074, "output": 0.295, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~z-ai", "model": "~z-ai/glm-latest", "name": "Z.ai: GLM Latest", "input": 0.079, "output": 1.4, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "tencent", "model": "tencent/hy-mt2-7b", "name": "Tencent: Hy-MT2-7B", "input": 0.074, "output": 0.295, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.3", "name": "Z.ai: GLM 5.3", "input": 0.079, "output": 1.4, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.3:batch", "name": "Z.ai: GLM 5.3 (batch)", "input": 0.45, "output": 2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.8-27b", "name": "Qwen: Qwen3.8 27B", "input": 0.04, "output": 1.35, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "dots-studio", "model": "dots-studio/dots-3-note-preview:free", "name": "Dots Studio: Dots3-Note Preview (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.7-flash", "name": "Google: Gemini 3.7 Flash", "input": 0.75, "output": 3.75, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.7-flash:batch", "name": "Google: Gemini 3.7 Flash (batch)", "input": 0.375, "output": 1.875, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "bytedance-seed", "model": "bytedance-seed/seed-2-1-turbo", "name": "ByteDance Seed: Seed 2.1 Turbo", "input": 0.5, "output": 2.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.8-2.4t-a95b", "name": "Qwen: Qwen3.8 2.4T A95B", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "bytedance-seed", "model": "bytedance-seed/seed-2.0-code", "name": "ByteDance Seed: Seed-2.0-Code", "input": 0.5, "output": 3, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4-pro-0813", "name": "DeepSeek: DeepSeek V4 Pro 0813", "input": 0.66, "output": 1.98, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.6", "name": "SpaceXAI: Grok 4.6", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "liquid", "model": "liquid/lfm-2.5-2.6b:free", "name": "LiquidAI: LFM2.5-2.6B (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3.5-lightning", "name": "NVIDIA: Nemotron 3.5 Lightning", "input": 0.07, "output": 0.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3.5-lightning:free", "name": "NVIDIA: Nemotron 3.5 Lightning (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "sakana", "model": "sakana/sakana-namazu", "name": "Sakana: Sakana Namazu", "input": 0.95, "output": 4, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "upstage", "model": "upstage/solar-pro4", "name": "Upstage: Solar Pro 4", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "meta", "model": "meta/muse-glimmer-30b", "name": "Meta: Muse Glimmer 30B", "input": 0.3, "output": 1.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "meta", "model": "meta/muse-spark-1.2", "name": "Meta: Muse Spark 1.2", "input": 1.25, "output": 4.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~deepseek", "model": "~deepseek/deepseek-v4-flash-latest", "name": "DeepSeek: DeepSeek V4 Flash Latest", "input": 392e-5, "output": 0.12, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4-flash-0731", "name": "DeepSeek: DeepSeek V4 Flash 0731", "input": 0.44, "output": 1.32, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "thinkingmachines", "model": "thinkingmachines/inkling-small", "name": "Thinking Machines: Inkling Small", "input": 0.45, "output": 1.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "thinkingmachines", "model": "thinkingmachines/inkling-small:free", "name": "Thinking Machines: Inkling Small (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.7-flash", "name": "Qwen: Qwen3.7 Flash", "input": 0.03, "output": 0.13, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-5", "name": "Anthropic: Claude Opus 5", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-5:batch", "name": "Anthropic: Claude Opus 5 (batch)", "input": 2.5, "output": 12.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "inclusionai", "model": "inclusionai/ling-3.0-flash", "name": "inclusionAI: Ling 3.0 Flash", "input": 0.021, "output": 0.063, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "poolside", "model": "poolside/laguna-s-2.1", "name": "Poolside: Laguna S 2.1", "input": 0.09, "output": 0.18, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "poolside", "model": "poolside/laguna-s-2.1:free", "name": "Poolside: Laguna S 2.1 (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.6-flash", "name": "Google: Gemini 3.6 Flash", "input": 0.75, "output": 3.75, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.6-flash:batch", "name": "Google: Gemini 3.6 Flash (batch)", "input": 0.375, "output": 1.875, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.5-flash-lite", "name": "Google: Gemini 3.5 Flash Lite", "input": 0.3, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.5-flash-lite:batch", "name": "Google: Gemini 3.5 Flash Lite (batch)", "input": 0.15, "output": 1.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meituan", "model": "meituan/longcat-2.0", "name": "Meituan: LongCat 2.0", "input": 0.3, "output": 1.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "thinkingmachines", "model": "thinkingmachines/inkling", "name": "Thinking Machines: Inkling", "input": 1, "output": 4.05, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "thinkingmachines", "model": "thinkingmachines/inkling:free", "name": "Thinking Machines: Inkling (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openrouter", "model": "openrouter/auto-beta", "name": "Auto Router (Beta)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "image" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k3", "name": "MoonshotAI: Kimi K3", "input": 0.239, "output": 11.936, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k3:batch", "name": "MoonshotAI: Kimi K3 (batch)", "input": 2.28, "output": 11.4, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "meta", "model": "meta/muse-spark-1.1", "name": "Meta: Muse Spark 1.1", "input": 1.25, "output": 4.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-luna-pro", "name": "OpenAI: GPT-5.6 Luna Pro", "input": 0.2, "output": 1.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-luna-pro:batch", "name": "OpenAI: GPT-5.6 Luna Pro (batch)", "input": 0.1, "output": 0.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-luna", "name": "OpenAI: GPT-5.6 Luna", "input": 0.2, "output": 1.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-luna:batch", "name": "OpenAI: GPT-5.6 Luna (batch)", "input": 0.1, "output": 0.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-terra-pro", "name": "OpenAI: GPT-5.6 Terra Pro", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-terra-pro:batch", "name": "OpenAI: GPT-5.6 Terra Pro (batch)", "input": 1, "output": 6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-terra", "name": "OpenAI: GPT-5.6 Terra", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-terra:batch", "name": "OpenAI: GPT-5.6 Terra (batch)", "input": 1, "output": 6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-sol-pro", "name": "OpenAI: GPT-5.6 Sol Pro", "input": 4, "output": 20, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-sol-pro:batch", "name": "OpenAI: GPT-5.6 Sol Pro (batch)", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-sol", "name": "OpenAI: GPT-5.6 Sol", "input": 4, "output": 20, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.6-sol:batch", "name": "OpenAI: GPT-5.6 Sol (batch)", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.5", "name": "SpaceXAI: Grok 4.5", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "~x-ai", "model": "~x-ai/grok-latest", "name": "xAI: Grok Latest", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "aion-labs", "model": "aion-labs/aion-3.0-mini", "name": "AionLabs: Aion-3.0-Mini", "input": 0.7, "output": 1.4, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "aion-labs", "model": "aion-labs/aion-3.0", "name": "AionLabs: Aion-3.0", "input": 3, "output": 6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "tencent", "model": "tencent/hy3", "name": "Tencent: Hy3", "input": 0.132, "output": 0.528, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "poolside", "model": "poolside/laguna-xs-2.1", "name": "Poolside: Laguna XS 2.1", "input": 0.06, "output": 0.12, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "poolside", "model": "poolside/laguna-xs-2.1:free", "name": "Poolside: Laguna XS 2.1 (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-5", "name": "Anthropic: Claude Sonnet 5", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-5:batch", "name": "Anthropic: Claude Sonnet 5 (batch)", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-flash-lite-image", "name": "Google: Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)", "input": 0.25, "output": 1.5, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "sakana", "model": "sakana/fugu-ultra", "name": "Sakana: Fugu Ultra", "input": 5, "output": 30, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-flash-image", "name": "Google: Nano Banana 2 (Gemini 3.1 Flash Image)", "input": 0.5, "output": 3, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "google", "model": "google/gemini-3-pro-image", "name": "Google: Nano Banana Pro (Gemini 3 Pro Image)", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "cohere", "model": "cohere/north-mini-code:free", "name": "Cohere: North Mini Code (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.2", "name": "Z.ai: GLM 5.2", "input": 0.62, "output": 2.42, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openrouter", "model": "openrouter/fusion", "name": "OpenRouter: Fusion", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k2.7-code", "name": "MoonshotAI: Kimi K2.7 Code", "input": 0.6712, "output": 3.35, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "~anthropic", "model": "~anthropic/claude-fable-latest", "name": "Anthropic: Claude Fable Latest", "input": 10, "output": 50, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-fable-5", "name": "Anthropic: Claude Fable 5", "input": 10, "output": 50, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-fable-5:batch", "name": "Anthropic: Claude Fable 5 (batch)", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3.5-content-safety", "name": "NVIDIA: Nemotron 3.5 Content Safety", "input": 0.2, "output": 0.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3.5-content-safety:free", "name": "NVIDIA: Nemotron 3.5 Content Safety (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3-ultra-550b-a55b", "name": "NVIDIA: Nemotron 3 Ultra", "input": 0.6, "output": 2.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3-ultra-550b-a55b:free", "name": "NVIDIA: Nemotron 3 Ultra (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.7-plus", "name": "Qwen: Qwen3.7 Plus", "input": 0.32, "output": 1.28, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.7-plus:batch", "name": "Qwen: Qwen3.7 Plus (batch)", "input": 0.23, "output": 0.92, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m3", "name": "MiniMax: MiniMax M3", "input": 0.3, "output": 1.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "stepfun", "model": "stepfun/step-3.7-flash", "name": "StepFun: Step 3.7 Flash", "input": 0.2, "output": 1.15, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.8", "name": "Anthropic: Claude Opus 4.8", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.8:batch", "name": "Anthropic: Claude Opus 4.8 (batch)", "input": 2.5, "output": 12.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.7-max", "name": "Qwen: Qwen3.7 Max", "input": 1.475, "output": 4.425, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-build-0.1", "name": "SpaceXAI: Grok Build 0.1", "input": 1, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.5-flash", "name": "Google: Gemini 3.5 Flash", "input": 1.5, "output": 9, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.5-flash:batch", "name": "Google: Gemini 3.5 Flash (batch)", "input": 0.75, "output": 4.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "perceptron", "model": "perceptron/perceptron-mk1", "name": "Perceptron: Perceptron Mk1", "input": 0.15, "output": 1.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-flash-lite", "name": "Google: Gemini 3.1 Flash Lite", "input": 0.25, "output": 1.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-flash-lite:batch", "name": "Google: Gemini 3.1 Flash Lite (batch)", "input": 0.125, "output": 0.75, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-chat-latest", "name": "OpenAI: GPT Chat Latest", "input": 5, "output": 30, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.3", "name": "SpaceXAI: Grok 4.3", "input": 1.25, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.3:batch", "name": "SpaceXAI: Grok 4.3 (batch)", "input": 1, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-medium-3-5", "name": "Mistral: Mistral Medium 3.5", "input": 1.5, "output": 7.5, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-medium-3-5:batch", "name": "Mistral: Mistral Medium 3.5 (batch)", "input": 0.75, "output": 3.75, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", "name": "NVIDIA: Nemotron 3 Nano Omni (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "~anthropic", "model": "~anthropic/claude-haiku-latest", "name": "Anthropic: Claude Haiku Latest", "input": 0.1, "output": 0.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~openai", "model": "~openai/gpt-mini-latest", "name": "OpenAI: GPT Mini Latest", "input": 0.75, "output": 4.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~google", "model": "~google/gemini-pro-latest", "name": "Google: Gemini Pro Latest", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~moonshotai", "model": "~moonshotai/kimi-latest", "name": "MoonshotAI: Kimi Latest", "input": 0.238, "output": 16, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~google", "model": "~google/gemini-flash-latest", "name": "Google: Gemini Flash Latest", "input": 0.75, "output": 3.75, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "~anthropic", "model": "~anthropic/claude-sonnet-latest", "name": "Anthropic: Claude Sonnet Latest", "input": 2, "output": 10, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-plus-20260420", "name": "Qwen: Qwen3.5 Plus 2026-04-20", "input": 0.3, "output": 1.8, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.6-flash", "name": "Qwen: Qwen3.6 Flash", "input": 0.1875, "output": 1.125, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.6-35b-a3b", "name": "Qwen: Qwen3.6 35B A3B", "input": 0.1, "output": 0.95, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.6-27b", "name": "Qwen: Qwen3.6 27B", "input": 0.25, "output": 2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.5-pro", "name": "OpenAI: GPT-5.5 Pro", "input": 30, "output": 180, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.5-pro:batch", "name": "OpenAI: GPT-5.5 Pro (batch)", "input": 15, "output": 90, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.5", "name": "OpenAI: GPT-5.5", "input": 5, "output": 30, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.5:batch", "name": "OpenAI: GPT-5.5 (batch)", "input": 2.5, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4-pro", "name": "DeepSeek: DeepSeek V4 Pro 0423", "input": 0.95526, "output": 1.91052, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v4-flash", "name": "DeepSeek: DeepSeek V4 Flash 0423", "input": 0.091, "output": 0.182, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "tencent", "model": "tencent/hy3-preview", "name": "Tencent: Hy3 preview", "input": 0.18, "output": 0.6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "xiaomi", "model": "xiaomi/mimo-v2.5-pro", "name": "Xiaomi: MiMo-V2.5-Pro", "input": 0.435, "output": 0.87, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "xiaomi", "model": "xiaomi/mimo-v2.5", "name": "Xiaomi: MiMo-V2.5", "input": 0.14, "output": 0.28, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-image-2", "name": "OpenAI: GPT-5.4 Image 2", "input": 8, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "~anthropic", "model": "~anthropic/claude-opus-latest", "name": "Anthropic: Claude Opus Latest", "input": 4, "output": 20, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openrouter", "model": "openrouter/pareto-code", "name": "Pareto Code Router", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k2.6", "name": "MoonshotAI: Kimi K2.6", "input": 0.65, "output": 3.41, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.7", "name": "Anthropic: Claude Opus 4.7", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.7:batch", "name": "Anthropic: Claude Opus 4.7 (batch)", "input": 2.5, "output": 12.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5.1", "name": "Z.ai: GLM 5.1", "input": 0.966, "output": 3.036, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "google", "model": "google/gemma-4-26b-a4b-it", "name": "Google: Gemma 4 26B A4B ", "input": 0.09, "output": 0.3, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemma-4-26b-a4b-it:free", "name": "Google: Gemma 4 26B A4B (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemma-4-31b-it", "name": "Google: Gemma 4 31B", "input": 0.2, "output": 0.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemma-4-31b-it:free", "name": "Google: Gemma 4 31B (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.6-plus", "name": "Qwen: Qwen3.6 Plus", "input": 0.325, "output": 1.95, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5v-turbo", "name": "Z.ai: GLM 5V Turbo", "input": 1.2, "output": 4, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "arcee-ai", "model": "arcee-ai/trinity-large-thinking", "name": "Arcee AI: Trinity Large Thinking", "input": 0.25, "output": 0.8, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.20-multi-agent", "name": "SpaceXAI: Grok 4.20 Multi-Agent", "input": 1.25, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "x-ai", "model": "x-ai/grok-4.20", "name": "SpaceXAI: Grok 4.20", "input": 1.25, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/lyria-3-pro-preview", "name": "Google: Lyria 3 Pro Preview", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "audio" }, { "provider": "google", "model": "google/lyria-3-clip-preview", "name": "Google: Lyria 3 Clip Preview", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "audio" }, { "provider": "rekaai", "model": "rekaai/reka-edge", "name": "Reka Edge", "input": 0.1, "output": 0.1, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m2.7", "name": "MiniMax: MiniMax M2.7", "input": 0.3, "output": 1.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-nano", "name": "OpenAI: GPT-5.4 Nano", "input": 0.2, "output": 1.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-nano:batch", "name": "OpenAI: GPT-5.4 Nano (batch)", "input": 0.1, "output": 0.625, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-mini", "name": "OpenAI: GPT-5.4 Mini", "input": 0.75, "output": 4.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-mini:batch", "name": "OpenAI: GPT-5.4 Mini (batch)", "input": 0.375, "output": 2.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-small-2603", "name": "Mistral: Mistral Small 4", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-small-2603:batch", "name": "Mistral: Mistral Small 4 (batch)", "input": 0.075, "output": 0.3, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5-turbo", "name": "Z.ai: GLM 5 Turbo", "input": 1.2, "output": 4, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3-super-120b-a12b", "name": "NVIDIA: Nemotron 3 Super", "input": 0.08, "output": 0.45, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3-super-120b-a12b:free", "name": "NVIDIA: Nemotron 3 Super (free)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "bytedance-seed", "model": "bytedance-seed/seed-2.0-lite", "name": "ByteDance Seed: Seed-2.0-Lite", "input": 0.25, "output": 2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-9b", "name": "Qwen: Qwen3.5-9B", "input": 0.1, "output": 0.15, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-pro", "name": "OpenAI: GPT-5.4 Pro", "input": 30, "output": 180, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4-pro:batch", "name": "OpenAI: GPT-5.4 Pro (batch)", "input": 15, "output": 90, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4", "name": "OpenAI: GPT-5.4", "input": 2.5, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.4:batch", "name": "OpenAI: GPT-5.4 (batch)", "input": 1.25, "output": 7.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "inception", "model": "inception/mercury-2", "name": "Inception: Mercury 2", "input": 0.25, "output": 0.75, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-flash-lite-preview", "name": "Google: Gemini 3.1 Flash Lite Preview", "input": 0.25, "output": 1.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "bytedance-seed", "model": "bytedance-seed/seed-2.0-mini", "name": "ByteDance Seed: Seed-2.0-Mini", "input": 0.1, "output": 0.4, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-flash-image-preview", "name": "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", "input": 0.5, "output": 3, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "qwen", "model": "qwen/qwen3.5-35b-a3b", "name": "Qwen: Qwen3.5-35B-A3B", "input": 0.15, "output": 1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-27b", "name": "Qwen: Qwen3.5-27B", "input": 0.27, "output": 2.16, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-122b-a10b", "name": "Qwen: Qwen3.5-122B-A10B", "input": 0.26, "output": 2.08, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-flash-02-23", "name": "Qwen: Qwen3.5-Flash", "input": 0.065, "output": 0.26, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-pro-preview-customtools", "name": "Google: Gemini 3.1 Pro Preview Custom Tools", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.3-codex", "name": "OpenAI: GPT-5.3-Codex", "input": 1.75, "output": 14, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "aion-labs", "model": "aion-labs/aion-2.0", "name": "AionLabs: Aion-2.0", "input": 0.8, "output": 1.6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-pro-preview", "name": "Google: Gemini 3.1 Pro Preview", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3.1-pro-preview:batch", "name": "Google: Gemini 3.1 Pro Preview (batch)", "input": 1, "output": 6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-4.6", "name": "Anthropic: Claude Sonnet 4.6", "input": 3, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-4.6:batch", "name": "Anthropic: Claude Sonnet 4.6 (batch)", "input": 1.5, "output": 7.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-plus-02-15", "name": "Qwen: Qwen3.5 Plus 2026-02-15", "input": 0.26, "output": 1.56, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3.5-397b-a17b", "name": "Qwen: Qwen3.5 397B A17B", "input": 0.39, "output": 2.34, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m2.5", "name": "MiniMax: MiniMax M2.5", "input": 0.27, "output": 0.95, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-5", "name": "Z.ai: GLM 5", "input": 0.6, "output": 1.92, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.6", "name": "Anthropic: Claude Opus 4.6", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.6:batch", "name": "Anthropic: Claude Opus 4.6 (batch)", "input": 2.5, "output": 12.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-coder-next", "name": "Qwen: Qwen3 Coder Next", "input": 0.12, "output": 0.8, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openrouter", "model": "openrouter/free", "name": "Free Models Router", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "stepfun", "model": "stepfun/step-3.5-flash", "name": "StepFun: Step 3.5 Flash", "input": 0.1, "output": 0.3, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k2.5", "name": "MoonshotAI: Kimi K2.5", "input": 0.5, "output": 2.5, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "upstage", "model": "upstage/solar-pro-3", "name": "Upstage: Solar Pro 3", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m2-her", "name": "MiniMax: MiniMax M2-her", "input": 0.3, "output": 1.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "writer", "model": "writer/palmyra-x5", "name": "Writer: Palmyra X5", "input": 0.6, "output": 6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-audio", "name": "OpenAI: GPT Audio", "input": 2.5, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "audio" }, { "provider": "openai", "model": "openai/gpt-audio-mini", "name": "OpenAI: GPT Audio Mini", "input": 0.6, "output": 2.4, "unit": "per_1m_tokens", "region": "us", "out": "audio" }, { "provider": "z-ai", "model": "z-ai/glm-4.7-flash", "name": "Z.ai: GLM 4.7 Flash", "input": 0.0605, "output": 0.4, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.2-codex", "name": "OpenAI: GPT-5.2-Codex", "input": 1.75, "output": 14, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "bytedance-seed", "model": "bytedance-seed/seed-1.6-flash", "name": "ByteDance Seed: Seed 1.6 Flash", "input": 0.075, "output": 0.3, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "bytedance-seed", "model": "bytedance-seed/seed-1.6", "name": "ByteDance Seed: Seed 1.6", "input": 0.25, "output": 2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m2.1", "name": "MiniMax: MiniMax M2.1", "input": 0.3, "output": 1.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-4.7", "name": "Z.ai: GLM 4.7", "input": 0.54, "output": 1.98, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "google", "model": "google/gemini-3-flash-preview", "name": "Google: Gemini 3 Flash Preview", "input": 0.5, "output": 3, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3-flash-preview:batch", "name": "Google: Gemini 3 Flash Preview (batch)", "input": 0.25, "output": 1.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "nvidia", "model": "nvidia/nemotron-3-nano-30b-a3b", "name": "NVIDIA: Nemotron 3 Nano 30B A3B", "input": 0.06, "output": 0.24, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.2-chat", "name": "OpenAI: GPT-5.2 Chat", "input": 1.75, "output": 14, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.2-pro", "name": "OpenAI: GPT-5.2 Pro", "input": 21, "output": 168, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.2-pro:batch", "name": "OpenAI: GPT-5.2 Pro (batch)", "input": 10.5, "output": 84, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.2", "name": "OpenAI: GPT-5.2", "input": 1.75, "output": 14, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.2:batch", "name": "OpenAI: GPT-5.2 (batch)", "input": 0.875, "output": 7, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/devstral-2512", "name": "Mistral: Devstral 2 2512", "input": 0.4, "output": 2, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "relace", "model": "relace/relace-search", "name": "Relace: Relace Search", "input": 1, "output": 3, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-4.6v", "name": "Z.ai: GLM 4.6V", "input": 0.3, "output": 0.9, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openrouter", "model": "openrouter/bodybuilder", "name": "Body Builder (beta)", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.1-codex-max", "name": "OpenAI: GPT-5.1-Codex-Max", "input": 1.25, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "amazon", "model": "amazon/nova-2-lite-v1", "name": "Amazon: Nova 2 Lite", "input": 0.3, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/ministral-14b-2512", "name": "Mistral: Ministral 3 14B 2512", "input": 0.2, "output": 0.2, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/ministral-8b-2512", "name": "Mistral: Ministral 3 8B 2512", "input": 0.15, "output": 0.15, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/ministral-8b-2512:batch", "name": "Mistral: Ministral 3 8B 2512 (batch)", "input": 0.075, "output": 0.075, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/ministral-3b-2512", "name": "Mistral: Ministral 3 3B 2512", "input": 0.1, "output": 0.1, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-large-2512", "name": "Mistral: Mistral Large 3 2512", "input": 0.5, "output": 1.5, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-large-2512:batch", "name": "Mistral: Mistral Large 3 2512 (batch)", "input": 0.25, "output": 0.75, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v3.2", "name": "DeepSeek: DeepSeek V3.2", "input": 0.28, "output": 0.42, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.5", "name": "Anthropic: Claude Opus 4.5", "input": 5, "output": 25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.5:batch", "name": "Anthropic: Claude Opus 4.5 (batch)", "input": 2.5, "output": 12.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-3-pro-image-preview", "name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", "input": 2, "output": 12, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "openai", "model": "openai/gpt-5.1", "name": "OpenAI: GPT-5.1", "input": 1.25, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.1:batch", "name": "OpenAI: GPT-5.1 (batch)", "input": 0.625, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.1-codex", "name": "OpenAI: GPT-5.1-Codex", "input": 1.25, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5.1-codex-mini", "name": "OpenAI: GPT-5.1-Codex-Mini", "input": 0.25, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k2-thinking", "name": "MoonshotAI: Kimi K2 Thinking", "input": 0.6, "output": 2.5, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "amazon", "model": "amazon/nova-premier-v1", "name": "Amazon: Nova Premier 1.0", "input": 2.5, "output": 12.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "perplexity", "model": "perplexity/sonar-pro-search", "name": "Perplexity: Sonar Pro Search", "input": 3, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/voxtral-small-24b-2507", "name": "Mistral: Voxtral Small 24B 2507", "input": 0.1, "output": 0.3, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "openai", "model": "openai/gpt-oss-safeguard-20b", "name": "OpenAI: gpt-oss-safeguard-20b", "input": 0.075, "output": 0.3, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m2", "name": "MiniMax: MiniMax M2", "input": 0.255, "output": 1.02, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "ibm-granite", "model": "ibm-granite/granite-4.0-h-micro", "name": "IBM: Granite 4.0 Micro", "input": 0.017, "output": 0.112, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-image-mini", "name": "OpenAI: GPT-5 Image Mini", "input": 2.5, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "anthropic", "model": "anthropic/claude-haiku-4.5", "name": "Anthropic: Claude Haiku 4.5", "input": 1, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-haiku-4.5:batch", "name": "Anthropic: Claude Haiku 4.5 (batch)", "input": 0.5, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-vl-8b-instruct", "name": "Qwen: Qwen3 VL 8B Instruct", "input": 0.25, "output": 0.75, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-image", "name": "OpenAI: GPT-5 Image", "input": 10, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "google", "model": "google/gemini-2.5-flash-image", "name": "Google: Nano Banana (Gemini 2.5 Flash Image)", "input": 0.3, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "image" }, { "provider": "qwen", "model": "qwen/qwen3-vl-30b-a3b-thinking", "name": "Qwen: Qwen3 VL 30B A3B Thinking", "input": 0.29, "output": 1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-vl-30b-a3b-instruct", "name": "Qwen: Qwen3 VL 30B A3B Instruct", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-pro", "name": "OpenAI: GPT-5 Pro", "input": 15, "output": 120, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-pro:batch", "name": "OpenAI: GPT-5 Pro (batch)", "input": 7.5, "output": 60, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-4.6", "name": "Z.ai: GLM 4.6", "input": 0.55, "output": 2.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-4.5", "name": "Anthropic: Claude Sonnet 4.5", "input": 3, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-sonnet-4.5:batch", "name": "Anthropic: Claude Sonnet 4.5 (batch)", "input": 1.5, "output": 7.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v3.2-exp", "name": "DeepSeek: DeepSeek V3.2 Exp", "input": 0.27, "output": 0.41, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "thedrummer", "model": "thedrummer/cydonia-24b-v4.1", "name": "TheDrummer: Cydonia 24B V4.1", "input": 0.3, "output": 0.5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "relace", "model": "relace/relace-apply-3", "name": "Relace: Relace Apply 3", "input": 0.85, "output": 1.25, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-vl-235b-a22b-instruct", "name": "Qwen: Qwen3 VL 235B A22B Instruct", "input": 0.21, "output": 1.9, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-v3.1-terminus", "name": "DeepSeek: DeepSeek V3.1 Terminus", "input": 0.27, "output": 1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-coder-flash", "name": "Qwen: Qwen3 Coder Flash", "input": 0.195, "output": 0.975, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-next-80b-a3b-thinking", "name": "Qwen: Qwen3 Next 80B A3B Thinking", "input": 0.15, "output": 1.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-next-80b-a3b-instruct", "name": "Qwen: Qwen3 Next 80B A3B Instruct", "input": 0.09, "output": 1.1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k2-0905", "name": "MoonshotAI: Kimi K2 0905", "input": 0.6, "output": 2.5, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "nousresearch", "model": "nousresearch/hermes-4-405b", "name": "Nous: Hermes 4 405B", "input": 1, "output": 3, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-chat-v3.1", "name": "DeepSeek: DeepSeek V3.1", "input": 0.25, "output": 0.95, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-medium-3.1", "name": "Mistral: Mistral Medium 3.1", "input": 0.4, "output": 2, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-medium-3.1:batch", "name": "Mistral: Mistral Medium 3.1 (batch)", "input": 0.2, "output": 1, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-4.5v", "name": "Z.ai: GLM 4.5V", "input": 0.6, "output": 1.8, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5", "name": "OpenAI: GPT-5", "input": 1.25, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5:batch", "name": "OpenAI: GPT-5 (batch)", "input": 0.625, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-mini", "name": "OpenAI: GPT-5 Mini", "input": 0.25, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-mini:batch", "name": "OpenAI: GPT-5 Mini (batch)", "input": 0.125, "output": 1, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-nano", "name": "OpenAI: GPT-5 Nano", "input": 0.05, "output": 0.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-5-nano:batch", "name": "OpenAI: GPT-5 Nano (batch)", "input": 0.025, "output": 0.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-oss-120b", "name": "OpenAI: gpt-oss-120b", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-oss-120b:batch", "name": "OpenAI: gpt-oss-120b (batch)", "input": 0.0296, "output": 0.136, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-oss-20b", "name": "OpenAI: gpt-oss-20b", "input": 0.018, "output": 0.09, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-oss-20b:batch", "name": "OpenAI: gpt-oss-20b (batch)", "input": 0.024, "output": 0.112, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.1", "name": "Anthropic: Claude Opus 4.1", "input": 15, "output": 75, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "anthropic", "model": "anthropic/claude-opus-4.1:batch", "name": "Anthropic: Claude Opus 4.1 (batch)", "input": 7.5, "output": 37.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/codestral-2508", "name": "Mistral: Codestral 2508", "input": 0.3, "output": 0.9, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "mistralai", "model": "mistralai/codestral-2508:batch", "name": "Mistral: Codestral 2508 (batch)", "input": 0.15, "output": 0.45, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-coder-30b-a3b-instruct", "name": "Qwen: Qwen3 Coder 30B A3B Instruct", "input": 0.07, "output": 0.28, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-30b-a3b-instruct-2507", "name": "Qwen: Qwen3 30B A3B Instruct 2507", "input": 0.09, "output": 0.3, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-4.5", "name": "Z.ai: GLM 4.5", "input": 0.6, "output": 2.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "z-ai", "model": "z-ai/glm-4.5-air", "name": "Z.ai: GLM 4.5 Air", "input": 0.13, "output": 0.85, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-235b-a22b-thinking-2507", "name": "Qwen: Qwen3 235B A22B Thinking 2507", "input": 0.45, "output": 3.5, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-coder", "name": "Qwen: Qwen3 Coder 480B A35B", "input": 0.3, "output": 1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "bytedance", "model": "bytedance/ui-tars-1.5-7b", "name": "ByteDance: UI-TARS 7B ", "input": 0.1, "output": 0.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-flash-lite", "name": "Google: Gemini 2.5 Flash Lite", "input": 0.1, "output": 0.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-flash-lite:batch", "name": "Google: Gemini 2.5 Flash Lite (batch)", "input": 0.05, "output": 0.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-235b-a22b-2507", "name": "Qwen: Qwen3 235B A22B Instruct 2507", "input": 0.09, "output": 0.55, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "moonshotai", "model": "moonshotai/kimi-k2", "name": "MoonshotAI: Kimi K2 0711", "input": 0.57, "output": 2.3, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "cognitivecomputations", "model": "cognitivecomputations/dolphin-mistral-24b-venice-edition", "name": "Venice: Uncensored", "input": 0.2, "output": 0.9, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "tencent", "model": "tencent/hunyuan-a13b-instruct", "name": "Tencent: Hunyuan A13B Instruct", "input": 0.14, "output": 0.57, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "morph", "model": "morph/morph-v3-large", "name": "Morph: Morph V3 Large", "input": 0.9, "output": 1.9, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "morph", "model": "morph/morph-v3-fast", "name": "Morph: Morph V3 Fast", "input": 0.8, "output": 1.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-small-3.2-24b-instruct", "name": "Mistral: Mistral Small 3.2 24B", "input": 0.09375, "output": 0.25, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-m1", "name": "MiniMax: MiniMax M1", "input": 0.55, "output": 2.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-flash", "name": "Google: Gemini 2.5 Flash", "input": 0.3, "output": 2.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-flash:batch", "name": "Google: Gemini 2.5 Flash (batch)", "input": 0.15, "output": 1.25, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-pro", "name": "Google: Gemini 2.5 Pro", "input": 1.25, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-pro:batch", "name": "Google: Gemini 2.5 Pro (batch)", "input": 0.625, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/o3-pro", "name": "OpenAI: o3 Pro", "input": 20, "output": 80, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemini-2.5-pro-preview", "name": "Google: Gemini 2.5 Pro Preview 06-05", "input": 1.25, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-r1-0528", "name": "DeepSeek: R1 0528", "input": 0.5, "output": 2.15, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-medium-3", "name": "Mistral: Mistral Medium 3", "input": 0.4, "output": 2, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-guard-4-12b", "name": "Meta: Llama Guard 4 12B", "input": 0.18, "output": 0.18, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-30b-a3b", "name": "Qwen: Qwen3 30B A3B", "input": 0.12, "output": 0.5, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-14b", "name": "Qwen: Qwen3 14B", "input": 0.12, "output": 0.24, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen3-32b", "name": "Qwen: Qwen3 32B", "input": 0.08, "output": 0.28, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/o4-mini-high", "name": "OpenAI: o4 Mini High", "input": 1.1, "output": 4.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/o3", "name": "OpenAI: o3", "input": 2, "output": 8, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/o3:batch", "name": "OpenAI: o3 (batch)", "input": 1, "output": 4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/o4-mini", "name": "OpenAI: o4 Mini", "input": 1.1, "output": 4.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/o4-mini:batch", "name": "OpenAI: o4 Mini (batch)", "input": 0.55, "output": 2.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4.1", "name": "OpenAI: GPT-4.1", "input": 2, "output": 8, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4.1:batch", "name": "OpenAI: GPT-4.1 (batch)", "input": 1, "output": 4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4.1-mini", "name": "OpenAI: GPT-4.1 Mini", "input": 0.4, "output": 1.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4.1-mini:batch", "name": "OpenAI: GPT-4.1 Mini (batch)", "input": 0.2, "output": 0.8, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4.1-nano", "name": "OpenAI: GPT-4.1 Nano", "input": 0.1, "output": 0.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4.1-nano:batch", "name": "OpenAI: GPT-4.1 Nano (batch)", "input": 0.05, "output": 0.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-4-maverick", "name": "Meta: Llama 4 Maverick", "input": 0.1875, "output": 0.6525, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-4-scout", "name": "Meta: Llama 4 Scout", "input": 0.1, "output": 0.3, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-chat-v3-0324", "name": "DeepSeek: DeepSeek V3 0324", "input": 0.29, "output": 1.14, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/o1-pro", "name": "OpenAI: o1-pro", "input": 150, "output": 600, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-small-3.1-24b-instruct", "name": "Mistral: Mistral Small 3.1 24B", "input": 0.351, "output": 0.555, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "google", "model": "google/gemma-3-4b-it", "name": "Google: Gemma 3 4B", "input": 0.04, "output": 0.05, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemma-3-12b-it", "name": "Google: Gemma 3 12B", "input": 0.05, "output": 0.15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "cohere", "model": "cohere/command-a", "name": "Cohere: Command A", "input": 2.5, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "rekaai", "model": "rekaai/reka-flash-3", "name": "Reka Flash 3", "input": 0.1, "output": 0.2, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "google", "model": "google/gemma-3-27b-it", "name": "Google: Gemma 3 27B", "input": 0.08, "output": 0.35, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "thedrummer", "model": "thedrummer/skyfall-36b-v2", "name": "TheDrummer: Skyfall 36B V2", "input": 0.55, "output": 0.8, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "perplexity", "model": "perplexity/sonar-reasoning-pro", "name": "Perplexity: Sonar Reasoning Pro", "input": 2, "output": 8, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "perplexity", "model": "perplexity/sonar-pro", "name": "Perplexity: Sonar Pro", "input": 3, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "perplexity", "model": "perplexity/sonar-deep-research", "name": "Perplexity: Sonar Deep Research", "input": 2, "output": 8, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-saba", "name": "Mistral: Saba", "input": 0.2, "output": 0.6, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "openai", "model": "openai/o3-mini-high", "name": "OpenAI: o3 Mini High", "input": 1.1, "output": 4.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "aion-labs", "model": "aion-labs/aion-rp-llama-3.1-8b", "name": "AionLabs: Aion-RP 1.0 (8B)", "input": 0.8, "output": 1.6, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen2.5-vl-72b-instruct", "name": "Qwen: Qwen2.5 VL 72B Instruct", "input": 0.8, "output": 1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen-plus", "name": "Qwen: Qwen-Plus", "input": 0.26, "output": 0.78, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/o3-mini", "name": "OpenAI: o3 Mini", "input": 1.1, "output": 4.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/o3-mini:batch", "name": "OpenAI: o3 Mini (batch)", "input": 0.55, "output": 2.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-small-24b-instruct-2501", "name": "Mistral: Mistral Small 3", "input": 0.05, "output": 0.08, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "perplexity", "model": "perplexity/sonar", "name": "Perplexity: Sonar", "input": 1, "output": 1, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "minimax", "model": "minimax/minimax-01", "name": "MiniMax: MiniMax-01", "input": 0.2, "output": 1.1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "microsoft", "model": "microsoft/phi-4", "name": "Microsoft: Phi 4", "input": 0.07, "output": 0.14, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "deepseek", "model": "deepseek/deepseek-chat", "name": "DeepSeek: DeepSeek V3", "input": 0.2574, "output": 1.0287, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "openai", "model": "openai/o1", "name": "OpenAI: o1", "input": 15, "output": 60, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "cohere", "model": "cohere/command-r7b-12-2024", "name": "Cohere: Command R7B (12-2024)", "input": 0.0375, "output": 0.15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-3.3-70b-instruct", "name": "Meta: Llama 3.3 70B Instruct", "input": 0.1, "output": 0.32, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "amazon", "model": "amazon/nova-lite-v1", "name": "Amazon: Nova Lite 1.0", "input": 0.06, "output": 0.24, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "amazon", "model": "amazon/nova-micro-v1", "name": "Amazon: Nova Micro 1.0", "input": 0.035, "output": 0.14, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "amazon", "model": "amazon/nova-pro-v1", "name": "Amazon: Nova Pro 1.0", "input": 0.8, "output": 3.2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o-2024-11-20", "name": "OpenAI: GPT-4o (2024-11-20)", "input": 2.5, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-large-2407", "name": "Mistral Large 2407", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen-2.5-coder-32b-instruct", "name": "Qwen2.5 Coder 32B Instruct", "input": 0.66, "output": 1, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "thedrummer", "model": "thedrummer/unslopnemo-12b", "name": "TheDrummer: UnslopNemo 12B", "input": 0.4, "output": 0.4, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "anthracite-org", "model": "anthracite-org/magnum-v4-72b", "name": "Magnum v4 72B", "input": 2.5, "output": 5, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen-2.5-7b-instruct", "name": "Qwen: Qwen2.5 7B Instruct", "input": 0.1, "output": 0.2, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-3.2-1b-instruct", "name": "Meta: Llama 3.2 1B Instruct", "input": 0.027, "output": 0.201, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-3.2-3b-instruct", "name": "Meta: Llama 3.2 3B Instruct", "input": 0.0509, "output": 0.335, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "qwen", "model": "qwen/qwen-2.5-72b-instruct", "name": "Qwen2.5 72B Instruct", "input": 0.36, "output": 0.4, "unit": "per_1m_tokens", "region": "cn", "out": "text" }, { "provider": "cohere", "model": "cohere/command-r-08-2024", "name": "Cohere: Command R (08-2024)", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "cohere", "model": "cohere/command-r-plus-08-2024", "name": "Cohere: Command R+ (08-2024)", "input": 2.5, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "sao10k", "model": "sao10k/l3.1-euryale-70b", "name": "Sao10K: Llama 3.1 Euryale 70B v2.2", "input": 0.85, "output": 0.85, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "nousresearch", "model": "nousresearch/hermes-3-llama-3.1-70b", "name": "Nous: Hermes 3 70B Instruct", "input": 0.7, "output": 0.7, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "nousresearch", "model": "nousresearch/hermes-3-llama-3.1-405b", "name": "Nous: Hermes 3 405B Instruct", "input": 1, "output": 1, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "sao10k", "model": "sao10k/l3-lunaris-8b", "name": "Sao10K: Llama 3 8B Lunaris", "input": 0.04, "output": 0.05, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o-2024-08-06", "name": "OpenAI: GPT-4o (2024-08-06)", "input": 2.5, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-3.1-70b-instruct", "name": "Meta: Llama 3.1 70B Instruct", "input": 0.4, "output": 0.4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "meta-llama", "model": "meta-llama/llama-3.1-8b-instruct", "name": "Meta: Llama 3.1 8B Instruct", "input": 0.05, "output": 0.08, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-nemo", "name": "Mistral: Mistral Nemo", "input": 0.029, "output": 0.03, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o-mini", "name": "OpenAI: GPT-4o-mini", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o-mini-2024-07-18", "name": "OpenAI: GPT-4o-mini (2024-07-18)", "input": 0.15, "output": 0.6, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o-mini:batch", "name": "OpenAI: GPT-4o-mini (batch)", "input": 0.075, "output": 0.3, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "google", "model": "google/gemma-2-27b-it", "name": "Google: Gemma 2 27B", "input": 0.65, "output": 0.65, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o", "name": "OpenAI: GPT-4o", "input": 2.5, "output": 10, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o-2024-05-13", "name": "OpenAI: GPT-4o (2024-05-13)", "input": 5, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4o:batch", "name": "OpenAI: GPT-4o (batch)", "input": 1.25, "output": 5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mixtral-8x22b-instruct", "name": "Mistral: Mixtral 8x22B Instruct", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4-turbo", "name": "OpenAI: GPT-4 Turbo", "input": 10, "output": 30, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4-turbo:batch", "name": "OpenAI: GPT-4 Turbo (batch)", "input": 5, "output": 15, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mistralai", "model": "mistralai/mistral-large", "name": "Mistral Large", "input": 2, "output": 6, "unit": "per_1m_tokens", "region": "eu", "out": "text" }, { "provider": "openai", "model": "openai/gpt-3.5-turbo-0613", "name": "OpenAI: GPT-3.5 Turbo (older v0613)", "input": 1, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openrouter", "model": "openrouter/auto", "name": "Auto Router", "input": 0, "output": 0, "unit": "per_1m_tokens", "region": "other", "out": "image" }, { "provider": "openai", "model": "openai/gpt-3.5-turbo-instruct", "name": "OpenAI: GPT-3.5 Turbo Instruct", "input": 1.5, "output": 2, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-3.5-turbo-16k", "name": "OpenAI: GPT-3.5 Turbo 16k", "input": 3, "output": 4, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "mancer", "model": "mancer/weaver", "name": "Mancer: Weaver (alpha)", "input": 0.4, "output": 0.75, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "undi95", "model": "undi95/remm-slerp-l2-13b", "name": "ReMM SLERP 13B", "input": 0.35, "output": 0.65, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "gryphe", "model": "gryphe/mythomax-l2-13b", "name": "MythoMax 13B", "input": 0.08, "output": 0.11, "unit": "per_1m_tokens", "region": "other", "out": "text" }, { "provider": "openai", "model": "openai/gpt-3.5-turbo", "name": "OpenAI: GPT-3.5 Turbo", "input": 0.5, "output": 1.5, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-3.5-turbo:batch", "name": "OpenAI: GPT-3.5 Turbo (batch)", "input": 0.25, "output": 0.75, "unit": "per_1m_tokens", "region": "us", "out": "text" }, { "provider": "openai", "model": "openai/gpt-4", "name": "OpenAI: GPT-4", "input": 30, "output": 60, "unit": "per_1m_tokens", "region": "us", "out": "text" }];
111
+ var SEEN_DIRECT = { "openai": ["babbage-002", "chat-latest", "chatgpt-image-latest", "davinci-002", "gpt-3.5-turbo", "gpt-3.5-turbo-0125", "gpt-3.5-turbo-1106", "gpt-3.5-turbo-16k", "gpt-3.5-turbo-instruct", "gpt-3.5-turbo-instruct-0914", "gpt-4", "gpt-4-0613", "gpt-4-turbo", "gpt-4-turbo-2024-04-09", "gpt-4.1", "gpt-4.1-2025-04-14", "gpt-4.1-mini", "gpt-4.1-mini-2025-04-14", "gpt-4.1-nano", "gpt-4.1-nano-2025-04-14", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", "gpt-4o-2024-11-20", "gpt-4o-mini", "gpt-4o-mini-2024-07-18", "gpt-4o-mini-search-preview", "gpt-4o-mini-search-preview-2025-03-11", "gpt-4o-mini-transcribe", "gpt-4o-mini-transcribe-2025-03-20", "gpt-4o-mini-transcribe-2025-12-15", "gpt-4o-mini-tts", "gpt-4o-mini-tts-2025-03-20", "gpt-4o-mini-tts-2025-12-15", "gpt-4o-search-preview", "gpt-4o-search-preview-2025-03-11", "gpt-4o-transcribe", "gpt-4o-transcribe-diarize", "gpt-5", "gpt-5-2025-08-07", "gpt-5-chat-latest", "gpt-5-codex", "gpt-5-mini", "gpt-5-mini-2025-08-07", "gpt-5-nano", "gpt-5-nano-2025-08-07", "gpt-5-pro", "gpt-5-pro-2025-10-06", "gpt-5-search-api", "gpt-5-search-api-2025-10-14", "gpt-5.1", "gpt-5.1-2025-11-13", "gpt-5.1-chat-latest", "gpt-5.1-codex", "gpt-5.1-codex-max", "gpt-5.1-codex-mini", "gpt-5.2", "gpt-5.2-2025-12-11", "gpt-5.2-chat-latest", "gpt-5.2-codex", "gpt-5.2-pro", "gpt-5.2-pro-2025-12-11", "gpt-5.3-chat-latest", "gpt-5.3-codex", "gpt-5.4", "gpt-5.4-2026-03-05", "gpt-5.4-mini", "gpt-5.4-mini-2026-03-17", "gpt-5.4-nano", "gpt-5.4-nano-2026-03-17", "gpt-5.4-pro", "gpt-5.4-pro-2026-03-05", "gpt-5.5", "gpt-5.5-2026-04-23", "gpt-5.5-pro", "gpt-5.5-pro-2026-04-23", "gpt-5.6-luna", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-6-astra", "gpt-6-luna", "gpt-6-sol", "gpt-6.1-sol", "gpt-audio", "gpt-audio-1.5", "gpt-audio-2025-08-28", "gpt-audio-mini", "gpt-audio-mini-2025-10-06", "gpt-audio-mini-2025-12-15", "gpt-image-1", "gpt-image-1-mini", "gpt-image-1.5", "gpt-image-2", "gpt-image-2-2026-04-21", "gpt-image-2.5-flare", "gpt-image-2.5-flare-2026-09-08", "gpt-image-2.5-sunburst", "gpt-image-2.5-sunburst-2026-09-08", "gpt-live-1", "gpt-live-transcribe", "gpt-realtime", "gpt-realtime-1.5", "gpt-realtime-2", "gpt-realtime-2.1", "gpt-realtime-2.1-mini", "gpt-realtime-2025-08-28", "gpt-realtime-mini", "gpt-realtime-mini-2025-12-15", "gpt-realtime-translate", "gpt-realtime-whisper", "gpt-transcribe", "o1", "o1-2024-12-17", "o1-pro", "o1-pro-2025-03-19", "o3", "o3-2025-04-16", "o3-deep-research", "o3-deep-research-2025-06-26", "o3-mini", "o3-mini-2025-01-31", "o3-pro", "o3-pro-2025-06-10", "o4-mini", "o4-mini-2025-04-16", "o4-mini-deep-research", "o4-mini-deep-research-2025-06-26", "omni-moderation-2024-09-26", "omni-moderation-latest", "sora-2", "sora-2-pro", "text-embedding-3-large", "text-embedding-3-small", "text-embedding-ada-002", "tts-1", "tts-1-1106", "tts-1-hd", "tts-1-hd-1106", "whisper-1"], "gemini": ["antigravity-preview-05-2026", "antigravity-preview-09-2026", "antigravity-preview-latest", "aqa", "deep-research-max-preview-04-2026", "deep-research-preview-04-2026", "deep-research-pro-preview-12-2025", "gemini-2.5-computer-use-preview-10-2025", "gemini-2.5-flash", "gemini-2.5-flash-image", "gemini-2.5-flash-lite", "gemini-2.5-flash-preview-tts", "gemini-2.5-pro", "gemini-2.5-pro-preview-tts", "gemini-3-flash-preview", "gemini-3-pro-image", "gemini-3-pro-image-preview", "gemini-3.1-flash-image", "gemini-3.1-flash-image-preview", "gemini-3.1-flash-lite", "gemini-3.1-flash-lite-image", "gemini-3.1-flash-lite-preview", "gemini-3.1-flash-tts-preview", "gemini-3.1-pro-preview", "gemini-3.1-pro-preview-customtools", "gemini-3.5-flash", "gemini-3.5-flash-lite", "gemini-3.5-transcribe", "gemini-3.6-flash", "gemini-3.7-flash", "gemini-3.8-flash", "gemini-3.8-flash-lite-tts", "gemini-3.8-flash-tts", "gemini-4-argon", "gemini-embedding-001", "gemini-embedding-2", "gemini-embedding-2-preview", "gemini-flash-latest", "gemini-flash-lite-latest", "gemini-nano-banana-2.1", "gemini-omni-1.1-flash", "gemini-omni-flash-preview", "gemini-pro-latest", "gemini-robotics-er-2-preview", "gemma-4-26b-a4b-it", "gemma-4-31b-it", "lyria-3-clip-preview", "lyria-3-pro-preview", "lyria-3.5", "nano-banana-pro-preview"], "mistral": ["codestral-2508", "codestral-embed", "codestral-embed-2505", "codestral-latest", "glm-5-2", "labs-leanstral-1-5", "labs-leanstral-1-5-1", "magistral-medium-latest", "magistral-small-latest", "ministral-14b-2512", "ministral-14b-latest", "ministral-3b-2512", "ministral-3b-latest", "ministral-8b-2512", "ministral-8b-latest", "mistral-code-fim-latest", "mistral-code-latest", "mistral-embed", "mistral-embed-2312", "mistral-large-2512", "mistral-large-4", "mistral-large-4-0", "mistral-large-latest", "mistral-medium", "mistral-medium-2604", "mistral-medium-3", "mistral-medium-3-5", "mistral-medium-3.5", "mistral-medium-latest", "mistral-moderation-2603", "mistral-ocr-2512", "mistral-ocr-3", "mistral-ocr-3-0", "mistral-ocr-4", "mistral-ocr-4-1", "mistral-ocr-latest", "mistral-small-2603", "mistral-small-latest", "mistral-vibe-cli-fast", "mistral-vibe-cli-latest", "mistral-vibe-cli-with-tools", "voxtral-mini-2602", "voxtral-mini-latest", "voxtral-mini-realtime-2602", "voxtral-mini-realtime-latest", "voxtral-mini-transcribe-realtime-2602", "voxtral-mini-tts-2603", "voxtral-mini-tts-latest", "voxtral-small-2507", "voxtral-small-latest", "zai-glm-5", "zai-glm-5-2", "zai-glm-5-3", "zai-glm-latest"], "elevenlabs": ["eleven_english_sts_v2", "eleven_flash_v2", "eleven_flash_v2_5", "eleven_multilingual_sts_v2", "eleven_multilingual_v2", "eleven_turbo_v2", "eleven_turbo_v2_5", "eleven_v3", "eleven_v3_conversational", "eleven_v4", "eleven_v4_turbo"], "anthropic": ["claude-fable-5", "claude-fable-5-1", "claude-haiku-4-5-20251001", "claude-haiku-5-5", "claude-opus-4-5-20251101", "claude-opus-4-6", "claude-opus-4-7", "claude-opus-4-8", "claude-opus-5", "claude-opus-5-5", "claude-sonnet-4-5-20250929", "claude-sonnet-4-6", "claude-sonnet-5", "claude-sonnet-5-5"] };
112
+
113
+ // src/catalogue/pricing-api.ts
114
+ var basename = (id) => {
115
+ let s = id.toLowerCase();
116
+ const colon = s.lastIndexOf(":");
117
+ if (colon >= 0) s = s.slice(colon + 1);
118
+ const slash = s.lastIndexOf("/");
119
+ if (slash >= 0) s = s.slice(slash + 1);
120
+ return s;
121
+ };
122
+ function regionForProvider(provider) {
123
+ switch (provider) {
124
+ case "mistral":
125
+ case "mistralai":
126
+ return "eu";
127
+ case "deepseek":
128
+ return "cn";
129
+ case "anthropic":
130
+ case "openai":
131
+ case "google":
132
+ case "x-ai":
133
+ case "meta-llama":
134
+ return "us";
135
+ default:
136
+ return "other";
137
+ }
138
+ }
139
+ function classifyKind(id, out = "text") {
140
+ const m = id.toLowerCase();
141
+ if (/embed/.test(m)) return "embedding";
142
+ if (/moderat/.test(m)) return "moderation";
143
+ if (/(^|[/:-])ocr\b|-ocr/.test(m)) return "ocr";
144
+ if (/whisper|transcri|voxtral|(^|[/-])stt\b/.test(m)) return "transcribe";
145
+ if (/(^|[/-])tts\b|text-to-speech/.test(m)) return "tts";
146
+ if (/(^|[/:])jev-/.test(m)) return "judge";
147
+ if (/(^|[/-])veo-|video|kling|seedance/.test(m)) return "video";
148
+ if (out === "image" || /dall-e|imagen|(^|[/-])flux|recraft|nano-banana|-image(-|$)/.test(m)) return "image";
149
+ if (out === "audio") return "audio";
150
+ return "chat";
151
+ }
152
+ function versionDate(version) {
153
+ const m = /^(\d{4}-\d{2}-\d{2})/.exec(version ?? "");
154
+ return m ? m[1] : void 0;
155
+ }
156
+ function upstreamDirect(provider, model) {
157
+ const seen = SEEN_DIRECT[provider];
158
+ if (!seen) return "unknown";
159
+ return seen.includes(model) ? "listed" : "gone";
160
+ }
161
+ var _media = null;
162
+ function ensureMedia() {
163
+ if (_media) return _media;
164
+ const m = /* @__PURE__ */ new Map();
165
+ for (const [key, p] of Object.entries(MEDIA_PRICING)) {
166
+ const ci = key.indexOf(":");
167
+ const provider = ci >= 0 ? key.slice(0, ci) : "";
168
+ const model = ci >= 0 ? key.slice(ci + 1) : key;
169
+ const row = {
170
+ provider,
171
+ model,
172
+ unit: p.unit,
173
+ usd: p.usd,
174
+ checkedAt: p.checkedAt,
175
+ region: regionForProvider(provider),
176
+ source: "curated"
177
+ };
178
+ if (row.unit === "per_sec") row.perSec = row.usd;
179
+ if (row.unit === "per_image") row.perImage = row.usd;
180
+ if (!m.has(model.toLowerCase())) m.set(model.toLowerCase(), row);
181
+ m.set(key.toLowerCase(), row);
182
+ }
183
+ _media = m;
184
+ return m;
185
+ }
186
+ function listMediaPrices() {
187
+ return [...new Set(ensureMedia().values())];
188
+ }
189
+ var _list = null;
190
+ var _full = null;
191
+ var _base = null;
192
+ function ensure() {
193
+ warnIfPricingStale();
194
+ if (_list) return;
195
+ const list = [];
196
+ const byBase = /* @__PURE__ */ new Map();
197
+ for (const r of PRICING_DATA) {
198
+ const e = {
199
+ provider: r.provider,
200
+ model: r.model,
201
+ name: r.name,
202
+ inputPer1M: r.input,
203
+ outputPer1M: r.output,
204
+ unit: "per_1m_tokens",
205
+ region: ["eu", "us", "cn", "other"].includes(r.region) ? r.region : "other",
206
+ source: "inventory",
207
+ checkedAt: PRICING_CHECKED_AT ? PRICING_CHECKED_AT.slice(0, 10) : void 0,
208
+ // An inventory row IS the OpenRouter catalogue snapshot, so it is listed there and
209
+ // reached through OpenRouter — until a curated direct price below claims it.
210
+ kind: classifyKind(r.model, r.out),
211
+ route: "openrouter",
212
+ callAs: { provider: "openrouter", model: r.model },
213
+ batch: r.model.endsWith(":batch"),
214
+ upstream: "listed"
215
+ };
216
+ list.push(e);
217
+ byBase.set(basename(r.model), e);
218
+ }
219
+ for (const [key, p] of Object.entries(PRICING)) {
220
+ const ci = key.indexOf(":");
221
+ const provider = ci >= 0 ? key.slice(0, ci) : "";
222
+ const modelPart = ci >= 0 ? key.slice(ci + 1) : key;
223
+ const existing = byBase.get(basename(modelPart));
224
+ const direct = provider !== "openrouter";
225
+ if (existing) {
226
+ existing.inputPer1M = p.inputPer1M;
227
+ existing.outputPer1M = p.outputPer1M;
228
+ existing.unit = "per_1m_tokens";
229
+ existing.source = "curated";
230
+ existing.checkedAt = versionDate(p.version);
231
+ if (direct) {
232
+ existing.route = "direct";
233
+ existing.callAs = { provider, model: modelPart };
234
+ existing.upstream = upstreamDirect(provider, modelPart);
235
+ }
236
+ } else {
237
+ const e = {
238
+ provider,
239
+ model: modelPart,
240
+ inputPer1M: p.inputPer1M,
241
+ outputPer1M: p.outputPer1M,
242
+ unit: "per_1m_tokens",
243
+ region: regionForProvider(provider),
244
+ source: "curated",
245
+ checkedAt: versionDate(p.version),
246
+ kind: classifyKind(modelPart),
247
+ route: direct ? "direct" : "openrouter",
248
+ callAs: { provider, model: modelPart },
249
+ batch: modelPart.endsWith(":batch"),
250
+ // A curated OpenRouter id that is NOT in the catalogue snapshot was not seen there.
251
+ upstream: direct ? upstreamDirect(provider, modelPart) : "unknown"
252
+ };
253
+ list.push(e);
254
+ byBase.set(basename(modelPart), e);
255
+ }
256
+ }
257
+ _list = list;
258
+ _base = byBase;
259
+ _full = new Map(list.map((e) => [e.model.toLowerCase(), e]));
260
+ for (const [key, mp] of Object.entries(MEDIA_PRICING)) {
261
+ const model = key.slice(key.indexOf(":") + 1).toLowerCase();
262
+ const tok = _full.get(model) ?? byBase.get(basename(model));
263
+ if (tok) tok.alsoBilled = { unit: mp.unit, usd: mp.usd, checkedAt: mp.checkedAt };
264
+ }
265
+ }
266
+ function getModelPrice(modelId) {
267
+ ensure();
268
+ const s = modelId.trim().toLowerCase();
269
+ const dated = stripDatedSuffix(s);
270
+ const media = ensureMedia();
271
+ return _full.get(s) ?? (s.includes(":") ? _full.get(s.slice(s.indexOf(":") + 1)) : void 0) ?? _base.get(basename(s)) ?? (dated !== s ? _full.get(dated) ?? _base.get(basename(dated)) : void 0) ?? // Media LAST, so a token model never loses its own row to a media id collision.
272
+ // Before F050 this returned undefined for every video model, which a caller could
273
+ // not tell apart from "we have no price for that anywhere".
274
+ media.get(s) ?? (s.includes(":") ? media.get(s.slice(s.indexOf(":") + 1)) : void 0);
275
+ }
276
+ function listModelPrices() {
277
+ ensure();
278
+ return _list.slice();
279
+ }
280
+ function findModelPrices(filter = {}) {
281
+ return listModelPrices().filter((m) => {
282
+ if (filter.provider && m.provider !== filter.provider) return false;
283
+ if (filter.region && m.region !== filter.region) return false;
284
+ if (filter.maxInputPer1M != null && m.inputPer1M > filter.maxInputPer1M) return false;
285
+ if (filter.free === true && (m.inputPer1M !== 0 || m.outputPer1M !== 0)) return false;
286
+ if (filter.free === false && m.inputPer1M === 0 && m.outputPer1M === 0) return false;
287
+ return true;
288
+ });
289
+ }
290
+ function priceCall(modelId, inputTokens, outputTokens) {
291
+ const p = getModelPrice(modelId);
292
+ if (!p || p.unit !== "per_1m_tokens") return void 0;
293
+ return inputTokens / 1e6 * p.inputPer1M + outputTokens / 1e6 * p.outputPer1M;
294
+ }
295
+ function pricingGeneratedAt() {
296
+ return PRICING_GENERATED_AT;
297
+ }
298
+ var PRICING_STALE_AFTER_DAYS = 35;
299
+ function computeFreshness(generatedAt, checkedAt, nowMs, units = []) {
300
+ const age = (iso) => {
301
+ const t = iso ? Date.parse(iso) : NaN;
302
+ return Number.isFinite(t) ? Math.max(0, Math.floor((nowMs - t) / 864e5)) : null;
303
+ };
304
+ const isStale = (d) => d === null || d > PRICING_STALE_AFTER_DAYS;
305
+ const ageDays = age(checkedAt);
306
+ const unitRows = units.map((u) => {
307
+ const a = age(u.checkedAt);
308
+ return { unit: u.unit, count: u.count, checkedAt: u.checkedAt, ageDays: a, stale: isStale(a) };
309
+ });
310
+ const caveats = unitRows.flatMap(
311
+ (u) => u.count === 0 ? [`${u.unit}: 0 rows \u2014 this table cannot price anything billed in ${u.unit}, so "stale: false" says nothing about it`] : u.stale ? [
312
+ `${u.unit}: ${u.count} row(s) last verified ${u.checkedAt || "never"}` + (u.ageDays === null ? "" : ` (${u.ageDays} days ago)`) + `, past the ${PRICING_STALE_AFTER_DAYS}d threshold`
313
+ ] : []
314
+ );
315
+ return {
316
+ generatedAt,
317
+ checkedAt,
318
+ ageDays,
319
+ stale: isStale(ageDays),
320
+ thresholdDays: PRICING_STALE_AFTER_DAYS,
321
+ units: unitRows,
322
+ caveats
323
+ };
324
+ }
325
+ function pricingFreshness(nowMs = Date.now()) {
326
+ return computeFreshness(PRICING_GENERATED_AT, PRICING_CHECKED_AT, nowMs, [
327
+ { unit: "per_1m_tokens", count: PRICING_DATA.length, checkedAt: PRICING_CHECKED_AT },
328
+ // Every media unit, derived from the table rather than listed here — a unit added
329
+ // to MEDIA_PRICING and forgotten here would be a unit the freshness API silently
330
+ // does not report, which is this whole feature's own bug wearing a new hat.
331
+ // Hand-maintained, and the monthly job cannot reach them, hence their own date:
332
+ // inheriting the token snapshot's would make an un-revised video price look freshly
333
+ // verified every time the token job ran.
334
+ ...Object.entries(mediaUnitCounts()).map(([unit, count]) => ({
335
+ unit,
336
+ count,
337
+ checkedAt: MEDIA_PRICING_CHECKED_AT
338
+ }))
339
+ ]);
340
+ }
341
+ var warned = false;
342
+ function warnIfPricingStale(nowMs = Date.now()) {
343
+ if (warned) return;
344
+ if (globalThis.process?.env?.BROBERG_AI_SDK_SILENCE_PRICING_WARNING) return;
345
+ const f = pricingFreshness(nowMs);
346
+ if (!f.stale && f.caveats.length === 0) return;
347
+ warned = true;
348
+ const parts = [];
349
+ if (f.stale) {
350
+ const age = f.ageDays === null ? "of unknown age" : `${f.ageDays} days old`;
351
+ parts.push(
352
+ `price table is ${age} (last verified ${f.checkedAt || "never"}, threshold ${f.thresholdDays}d). Prices drift: one week has produced 34 changes before. Refresh with \`bun run scripts/build-inventory.ts\` in ai-sdk, or take a newer release.`
353
+ );
354
+ }
355
+ if (f.caveats.length > 0) {
356
+ parts.push(
357
+ `${f.caveats.length} pricing caveat(s): ${f.caveats.join("; ")}. Non-token prices are HAND-maintained (no vendor catalogue API serves them), so refreshing them means a human re-reading the vendor's pricing page and bumping MEDIA_PRICING_CHECKED_AT in src/cost/media-pricing.ts.`
358
+ );
359
+ }
360
+ console.warn(`[@broberg/ai-sdk] ${parts.join(" | ")}`);
361
+ }
362
+ function resetPricingWarningForTests() {
363
+ warned = false;
364
+ }
365
+ var VENDOR_ALIASES = {
366
+ mistral: ["mistral", "mistralai"],
367
+ google: ["google", "gemini", "vertex"],
368
+ gemini: ["google", "gemini", "vertex"],
369
+ openai: ["openai"],
370
+ anthropic: ["anthropic"],
371
+ deepseek: ["deepseek"],
372
+ meta: ["meta-llama", "meta"],
373
+ xai: ["x-ai", "xai"]
374
+ };
375
+ function cheapestModels(q) {
376
+ const vendor = q.vendor.trim().toLowerCase();
377
+ const kind = q.kind ?? "chat";
378
+ const prefixes = VENDOR_ALIASES[vendor] ?? [vendor];
379
+ const fresh = pricingFreshness(q.nowMs);
380
+ const matches = listModelPrices().filter((p) => {
381
+ const ofVendor = prefixes.includes(p.provider.toLowerCase()) || prefixes.some((v) => p.model.toLowerCase().startsWith(`${v}/`));
382
+ if (!ofVendor || p.kind !== kind) return false;
383
+ if (q.route && p.route !== q.route) return false;
384
+ if (q.region && p.region !== q.region) return false;
385
+ if (!q.includeBatch && p.batch) return false;
386
+ if (!q.includeGone && p.upstream === "gone") return false;
387
+ if (!q.includeFree && (p.model.endsWith(":free") || p.inputPer1M === 0 && p.outputPer1M === 0)) return false;
388
+ return true;
389
+ });
390
+ const rows = matches.map((p) => {
391
+ const caveats2 = [];
392
+ if (p.source === "inventory") caveats2.push("price from the OpenRouter catalogue (OpenRouter's rate), not the vendor's own price page");
393
+ if (p.upstream === "unknown") caveats2.push("not checked against the vendor's own model list");
394
+ if (/-latest$/.test(p.model)) caveats2.push("floating -latest alias: the vendor can move it to another model and price");
395
+ if (p.route === "openrouter") caveats2.push("via OpenRouter: OpenRouter picks the upstream host, so the region is NOT guaranteed (usage.region reports 'unknown')");
396
+ else if (p.region !== "eu") caveats2.push(`region ${p.region}: not for personal data`);
397
+ if (p.source === "curated" && !p.checkedAt) caveats2.push("curated price without a check date");
398
+ return {
399
+ model: p.model,
400
+ callAs: p.callAs,
401
+ route: p.route,
402
+ kind: p.kind,
403
+ region: p.region,
404
+ inputPer1M: p.inputPer1M,
405
+ outputPer1M: p.outputPer1M,
406
+ blendedPer1M: Number(((3 * p.inputPer1M + p.outputPer1M) / 4).toPrecision(12)),
407
+ source: p.source,
408
+ checkedAt: p.checkedAt,
409
+ upstream: p.upstream,
410
+ caveats: caveats2
411
+ };
412
+ });
413
+ rows.sort(
414
+ (a, b) => a.blendedPer1M - b.blendedPer1M || Number(/-latest$/.test(a.model)) - Number(/-latest$/.test(b.model)) || Number(a.route !== "direct") - Number(b.route !== "direct") || Number(a.upstream !== "listed") - Number(b.upstream !== "listed") || a.model.localeCompare(b.model)
415
+ );
416
+ const caveats = [];
417
+ if (fresh.stale) caveats.push(`price table is stale (checked ${fresh.checkedAt || "never"}, threshold ${fresh.thresholdDays} days)`);
418
+ if (rows.length === 0) caveats.push(`no ${kind} model priced for vendor "${q.vendor}" with these filters`);
419
+ if (q.route === "direct") caveats.push("direct route covers only models in our curated price table; the vendor may list cheaper ones we have not priced");
420
+ return {
421
+ vendor: q.vendor,
422
+ kind,
423
+ results: rows.slice(0, q.limit ?? 3),
424
+ matched: rows.length,
425
+ stale: fresh.stale,
426
+ checkedAt: fresh.checkedAt,
427
+ caveats
428
+ };
429
+ }
430
+
431
+ export {
432
+ MEDIA_PRICING_CHECKED_AT,
433
+ MEDIA_PRICING,
434
+ DEFAULT_CLIP_SEC,
435
+ getMediaPrice,
436
+ classifyKind,
437
+ listMediaPrices,
438
+ getModelPrice,
439
+ listModelPrices,
440
+ findModelPrices,
441
+ priceCall,
442
+ pricingGeneratedAt,
443
+ PRICING_STALE_AFTER_DAYS,
444
+ pricingFreshness,
445
+ warnIfPricingStale,
446
+ resetPricingWarningForTests,
447
+ cheapestModels
448
+ };
449
+ //# sourceMappingURL=chunk-D53S242W.js.map