同事問我:「除了 OpenRouter,還有別家能接 Claude Code 嗎?」問的不是有沒有,而是換過去之後,帳單會不會比較便宜、出問題查不查得到原因。
2026 年這類 API 閘道(gateway)不少,規格頁看起來也差不多:都寫一個金鑰、幾百個模型、相容 OpenAI 與 Anthropic。真正把兩家分開的,是回應裡多出來的那幾個欄位,以及錢是在哪一步被扣走的。
以下把 2026 年 10 月 12 日的一次實測與兩份文件的對照整理成一條判準:先看欄位,再看計價,最後才看模型數量。
實測用三支請求走完:Claude Code 的最小 Messages 請求、帶 cache_control 的長上下文請求、以及 budget_tokens 分別設 128 與 1024 的對照。受測模型是 claude-haiku-5-5、claude-sonnet-5-5、claude-opus-5-5,全部走 HTTP,沒有把官方文件裡的設定說明當成實測結果。
兩家的模型條目數、欄位命名與定價,取自各自公開介面與文件;OpenRouter 一側的規格以官方文件為準,沒有付費實測。日期標在每個數字旁邊,是因為這類數據三個月就會變。
第一個差別在回應欄位。 同一條 Anthropic Messages 請求,一邊回的是正規化格式,一邊回的是原生格式。原生那邊有四個欄位是 OpenAI 相容格式表達不了的:
| 欄位 | 作用 |
|---|---|
cache_creation.ephemeral_5m_input_tokens<br>cache_creation.ephemeral_1h_input_tokens |
快取寫入按 5 分鐘/1 小時兩檔分別計數 |
output_tokens_details.thinking_tokens |
思考 token 從輸出裡單獨列出 |
diagnostics.cache_miss_reason |
這次為什麼沒命中(實測回 previous_message_not_found) |
safeguard_results |
安全檢查結果 |
正規化不是缺點。它是聚合器的必然選擇,而且有好處:程式從 Claude 換到 Gemini 再換到 DeepSeek,解析 usage 的邏輯一行都不用改。代價出現在故障那一刻——命中率掉了,正規化之後只看到 cached_tokens 變成 0,接下來只能自己猜。
# 三個斷言,把「安靜失敗」變成「明確報錯」
diag = resp.get("diagnostics") or {}
assert resp["usage"]["output_tokens_details"]["thinking_tokens"] > 0, "thinking 沒觸發,檢查 budget_tokens"
miss = diag.get("cache_miss_reason")
if miss:
print(f"快取未命中原因: {miss}")
第二個斷言特別有用:budget_tokens 給小了不會報錯,介面照樣回 200,只是 thinking_tokens 是 0。實測時 128 沒有觸發、1024 才有,四款 Claude 的反應還不一樣。
第二個差別在規則寫在哪。 OpenRouter 的降級寫在請求裡(models 清單或 @preset/<name> 預設集),用戶端必須送它特有的東西;另一家把模型白名單與 token 預算掛在 API 金鑰上,用戶端照送原本的模型名,未授權的模型回 model not allowed(403),超預算回 429。
第三個差別在模型池。 正規化之後 372 對 177,交集 77。差距集中在開源權重長尾:Qwen3 37 對 12、Gemini 23 對 8、DeepSeek 17 對 4。這一格沒有折衷空間,要跑冷門開源模型就是選 OpenRouter。
多數人以為價差在匯率或折扣,其實大頭在快取命中率。
按 Anthropic 的規則,快取寫入是標價的 1.25 倍、讀取是 0.1 倍、1 小時 TTL 寫入是 2 倍。兩家都用這組係數,差的是你知不知道它有沒有命中。
用 Claude Sonnet 5.5(輸入 $2 / 輸出 $10)算,一輪帶 6 萬 token 上下文、一天 40 輪:
一天差 $4.18,一個月約 $125。同樣的 token,十倍的單價差,全部來自命中沒命中。
至於標價之上的那一筆:OpenRouter Standard 方案刷卡儲值收 5.5%(Business 8%,手續費不退),按每百萬 token 換算就是標價 × 1.055。以 2026 年 10 月 13 日的價格頁快照為例,GPT-6 Astra 官方 $10 / $50,在 OpenRouter 是 $10.55 / $52.75;另一家那天的標價是 $6.50 / $32.50,低 35%。同一個月 $1,000 的用量,一年差約 $4,860。
| 你的需求 | 落在哪一側 | 理由 |
|---|---|---|
| 多模型橫向比較、開源權重長尾 | OpenRouter | 372 對 177 |
| 程式要在多廠商之間切換 | OpenRouter | 正規化欄位,解析邏輯不用改 |
| 資料落地、零保留、主權雲 | OpenRouter | ZDR 與區域內路由有完整文件 |
| 要照文件實作限流策略 | OpenRouter | 402 / 403 / 429 分工 |
| 任務可以等 | OpenRouter | Batch API 約半價 |
| 模型固定在 Claude 這一兩支 | 另一家 | 原生欄位透傳 |
| 要查快取為什麼沒命中 | 另一家 | cache_miss_reason 寫在回應裡 |
| 要 token 級預算與環境隔離 | 另一家 | 現成機制 |
| 要拆分限流 | 另一家 | 限流按 token 計 |
| 剛上手一個編碼工具 | 另一家 | 五個工具各有整合頁 |
Claude Code 換過去是三個環境變數的事:
export ANTHROPIC_BASE_URL="https://api.crazyrouter.com"
export ANTHROPIC_AUTH_TOKEN="你的金鑰"
export ANTHROPIC_MODEL="claude-sonnet-5-5"
價格與模型數自己拉最準,兩個介面都免金鑰:
curl -s https://openrouter.ai/api/v1/models | jq '.data | length'
curl -s https://crazyrouter.com/api/pricing | jq '.data | length'
Crazyrouter
OpenRouter(對照來源)