回到頂部
多個模型模組透過不同路線進入中央路由器,再經隱私濾網、預算旋鈕與金鑰送往同一應用程式

OpenRouter 教學:API Key、免費模型、路由與資料隱私

OpenRouter 用一套 API 切換多家模型,但 provider、費用與資料政策也多一層。從建立 Key、免費模型、fallback、ZDR 到預算 guardrail 一次說清楚。

內容查核: 價格查核: 來源查核:

OpenRouter 的核心價值是「一套 API,多家模型」。你的應用程式可以維持類似 OpenAI Chat Completions 的呼叫方式,只改 model slug 就切到不同模型,也能讓路由器在某個 provider 忙碌或失敗時改走備援。

這能減少多套 SDK 與帳單整合,代價是多一層路由與資料政策。選了某個模型名稱,不代表每次都由同一家 provider 處理;若公司在意資料保存、地區、價格與參數支援,必須把 provider 規則寫清楚。

建立 API Key 與第一個請求

建立帳號、購買或取得 credits 後,到 Keys 建立 key。每把 key 可命名並設定 credit limit,建議按 App、環境與團隊拆分:開發、測試、production 不共用。key 放環境變數,不能寫進前端或公開 repo;懷疑外洩時立刻刪除並重建。

OpenRouter 支援自己的 SDK,也能以 OpenAI SDK 改 base URL 連線。第一次先用一個便宜模型送固定訊息,確認回傳的 usage、model 與錯誤處理,再加入 streaming、tools 或 fallback。跨模型參數不一定完全一致,正式切換前要用 require_parameters 或自己的測試確認必要功能有被支援。

想看完整程式串接觀念,可搭配 AI API 串接指南;要比較模型能力,先固定同一組案例與評分,不要只在模型列表裡追最新名稱。

跟著做:送出一次請求,再核對回傳

可以下載 第一個請求練習包,內含程式、離線測試與操作說明;也可分別查看 request.mjs、測試檔 與 README。需要 Node.js 22 或更新版,不必安裝 npm 套件。

先在電腦建立新的私人資料夾並解壓縮,開啟該資料夾的終端機,執行離線測試:

node --test request.test.mjs

這一步使用虛構回應,不需要 key、不連線,也不會呼叫模型。通過代表範例程式能判讀這些測試情境,不代表目前有可用的免費 provider。

要自行送出真實請求,先建立有 credit limit 的測試 key。在同資料夾新增 .env 純文字檔,寫入 OPENROUTER_API_KEY=YOUR_KEY_HERE,再把佔位文字換成自己的 key。這個檔案只留在本機,不要放進網站 public、公開 repo 或分享用 ZIP。接著執行:

node --env-file=.env request.mjs

若終端機已設定同名環境變數,Node.js 會優先使用它,請確認不是另一個環境的 key。程式透過 Bearer header 驗證,向 https://openrouter.ai/api/v1/chat/completions 送出一次請求;訊息固定為下列內容,沒有讀取你的其他檔案:

{
  "model": "openrouter/free",
  "messages": [
    { "role": "user", "content": "請用繁體中文,用一句話解釋 API。" }
  ],
  "max_tokens": 128,
  "stream": false
}

範例等待最多 30 秒,不自動重送或切換成付費模型。max_tokens 限制輸出 token,不是帳戶金額上限;key 的額度仍要在 OpenRouter 設定。openrouter/free 會路由到當時可用的免費模型,實際回傳的 model 與文字可能不同。部分推理模型可能用完這個小 token 預算而沒有可見答案,範例會標示未通過,不把空白回傳當成功。API 格式與免費路由可對照 Chat Completions 文件 和 Free Models Router。

成功時要看到 ok: true、非空白的 content,並核對實際 model 與 usage。本包離線測試使用 fixture/model 及 12/15/27 的輸入、輸出、總 token 數,這些是測試資料,不是本站取得的模型回答或實際用量。若 usage 欄位顯示 null,表示未取得該數字,不能當成零用量。本站已驗證離線程式情境,尚未以真實 key 完成這個範例的線上模型測試。

請求失敗時,先分清楚是哪一種限制

範例會輸出精簡的 kind、HTTP 狀態與可取得的 API 錯誤代碼,不印出 key 或整份原始錯誤內容。先依下表處理,再決定是否重試:

結果先檢查什麼
missing_key.env 是否正確命名、key 是否仍是佔位文字;此時尚未連線
401Key 是否有效、被停用,或被既有環境變數覆蓋
402核對 limitSource:key 額度、帳戶 credits/單次預算,或同時執行請求的預算,處理方式不同
429請求頻率或供應端容量受限;有 retryAfter 時依指示等待,勿連續重送
empty_content/incomplete_output沒有完整文字,或 token 預算用盡;先看 finishReason,不要當成成功答案

402 不一定代表必須儲值:openrouter_key_limit 指向 key 額度;openrouter_credits 指向 credits 或單次請求預算;openrouter_in_flight_budget 則可能需等待執行中請求及近期結算釋放額度。依 官方 Limits 說明 核對,不要看到錯誤就提高支出上限。

另外,HTTP 200 仍可能帶有 error,或某筆 choices 的 finish_reason 是 error。下載程式會同時檢查這些欄位;回傳 403、503、非 JSON 或逾時也會停止,不自動放寬權限及路由條件。完整錯誤格式見 Errors and Debugging。

免費模型能不能直接做產品?

OpenRouter quickstart 提供 openrouter/free 路由,也有 model slug 加 :free 的免費 endpoint。它適合學習、原型和不敏感的低頻測試,但免費容量、provider 與可用性可能變動,輸出品質也會跟實際被路由的模型不同。

正式產品若承諾穩定延遲、固定模型行為或資料條款,不要把免費路由當唯一依賴。先選明確模型與 provider,設定 fallback 順序、最大價格、超時與失敗回應;若 fallback 會換到另一個模型,也要告知使用者並記錄實際供應端。

費用方面,OpenRouter 表示一般模型價格依底層 provider 傳遞,並提供統一 credits 與用量分析;BYOK 另有請求費規則。模型、供應商與方案會變,採用前回到模型頁與 FAQ 核對,並替 key 設每日或每月上限。

資料隱私要看兩層

第一層是 OpenRouter。官方目前說 prompt 與 response 內容預設不儲存,除非使用者開啟 Private Input & Output Logging,或選擇允許平台使用輸入輸出並取得折扣;token、延遲等 metadata 仍會保存供報表使用。

第二層是實際 provider。每家供應商有自己的 logging、retention 與是否拿 prompt 訓練政策。帳號設定可以拒絕會用資料訓練的 provider;單次請求也能設定 data_collection: "deny"、provider allowlist 或 zdr: true。ZDR 只在有符合條件的 endpoint 時成功,規則太嚴可能回傳沒有可用 provider。

公司導入前,先列出允許模型、允許 provider、資料類型、地區與保存要求。高敏感資料即使設定 ZDR,也要走法務與資安審核;「文件寫不保存」不能替代公司合約與資料流盤點。

路由怎麼設才不會失控?

預設路由會在可用 provider 間平衡,追求 uptime。需要固定行為時,用 order 指定順序、only 限定 provider、allow_fallbacks 決定能否備援、max_price 控成本,並用 require_parameters 避免被送到不支援必要參數的端點。

團隊可用 Guardrails 限制 model/provider allowlist、budget、ZDR 與敏感資訊;多層規則套用時,官方採更嚴格者優先。詳細的成本與供應商取捨,可延伸看 OpenRouter 模型路由與成本分析 和 AI 成本優化。

如果需求是在同一個企業端點內依任務難度自動選模型,而不是在同模型的供應端之間 fallback,可比較 Microsoft Foundry Model Router 的 Balanced、Cost、Quality 模式。兩者都叫「路由」,但前者重點是跨模型與 provider 控制,後者重點是由平台判斷任務並在核准的模型池中分流。

常見問題

OpenRouter 是免費的嗎?

有免費模型與 openrouter/free 路由,但容量、模型與可用性可能變動。付費模型從 credits 扣款;BYOK、手續費與模型價格請以最新 FAQ 與模型頁為準。

OpenRouter 和直接用 OpenAI/Anthropic API 差在哪?

直接 API 的供應商、帳務與資料路徑較單純;OpenRouter 提供統一介面、多模型比較、provider routing 與 fallback。若只用一家模型且合規要求嚴格,直接 API 可能更好管理。

OpenRouter 會保存我的 prompt 嗎?

官方目前說內容預設不儲存,除非你另行開啟 logging 或同意平台使用輸入輸出;metadata 仍會保留。實際 provider 另有自己的保存政策,必須一起檢查。

設定 ZDR 就一定不留資料嗎?

ZDR 會限制到標示為 Zero Data Retention 的 endpoint;若沒有符合 provider,請求可能失敗。企業仍要確認供應商條款、OpenRouter 設定、資料地區與自身合規要求。

參考來源

№ · further reading

延伸閱讀