核對於 2026-11-12

用一組金鑰串接 Claude API

把 Base URL 換成 https://api.relayswitch.io/v1、金鑰換成 RelaySwitch 的,原本用 Anthropic SDK 或 OpenAI SDK 寫的程式就能呼叫 13 個 Claude 模型。請求內容、串流與工具呼叫的寫法都不變,費用從預付餘額按 token 扣款。

01先用 curl 測通

寫程式之前,先用 curl 確認網址和金鑰。這是 Anthropic Messages 格式的最小請求;-i 會印出狀態列與回應標頭,標頭裡有這次請求的 id。

金鑰放在 Authorization: Bearer 或 x-api-key 都可以,但一次請求只能帶一把金鑰。

bash
1curl -i https://api.relayswitch.io/v1/messages \
2 -H "Authorization: Bearer sk-relay-..." \
3 -H "anthropic-version: 2023-06-01" \
4 -H "content-type: application/json" \
5 -d '{"model": "claude-fable-5.1", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with ok"}]}'

02Python:Anthropic SDK

只改 base_url 和 api_key 兩個參數。Anthropic SDK 會自己在 Base URL 後面接上 /v1/messages,API 對重複的 /v1 做了相容處理,所以範例一律填 https://api.relayswitch.io/v1。reply.usage 裡的輸入、輸出 token 數,會和這次請求的收據一致。

python
1import anthropic
2
3client = anthropic.Anthropic(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")
4reply = client.messages.create(
5 model="claude-fable-5.1",
6 max_tokens=300,
7 messages=[{"role": "user", "content": "Reply with ok"}],
8)
9print(reply.content[0].text)
10print(reply.usage)

03已經在用 OpenAI SDK

原本照 OpenAI 格式寫的程式不用改結構:base_url 換成 https://api.relayswitch.io/v1,model 換成 Claude 的模型 id,請求走 /chat/completions。兩種格式用同一把金鑰、同一筆餘額,價格也一樣。

python
1from openai import OpenAI
2
3client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")
4reply = client.chat.completions.create(
5 model="claude-fable-5.1",
6 messages=[{"role": "user", "content": "Reply with ok"}],
7)
8print(reply.choices[0].message.content)

04Anthropic 格式還是 OpenAI 格式

新寫的程式,或要用到 Claude 自己的功能(system 欄位、原生的工具呼叫結構、提示快取標記),用 Anthropic SDK 走 /messages。現有程式是 OpenAI 格式,或同一套程式還要呼叫其他開發商的模型,就走 /chat/completions。

串流輸出把 stream 設成 true,回應是 server-sent events;所有模型都支援串流。Claude Code 這類工具有自己固定的格式,設定方式見 Claude Code 教學。

05錯誤碼對照

錯誤內容沿用呼叫方所用格式的錯誤結構。401 到 404 在請求送到模型之前就回覆,429、502、503 沒有內容回傳,這些情況都不扣款。

401 invalid_api_key沒帶金鑰、金鑰不正確,或已被撤銷
402 insufficient_balance餘額不足;金鑰的預算或消費上限用完時是另外的錯誤碼
403 scope_denied金鑰的模型白名單裡沒有這個 id
404 model_not_found模型 id 不在目錄裡,多半是拼錯
429 rate_limited金鑰的速率到了上限,retry-after 標頭會給出要等待的秒數
502、503 upstream_error、upstream_unavailable線路出錯,或暫時沒有線路回應

06快取輸入另外計價

命中提示快取的 token 有自己的單價,低於一般輸入價。很長的系統提示、反覆送出的文件與多輪對話的歷史,命中快取後都以這個價格計費。每次請求的收據會把輸入、快取輸入、輸出的 token 分開列出,可以逐筆核對。

07Claude 模型即時價格

以下是目錄裡的 13 個 Claude 模型,表中價格就是扣款價格,單位為美元/每百萬 token。計費規則與其他模型的價格在價格頁。

模型開發商輸入輸出上下文長度
Claude Fable 5.1claude-fable-5.1Anthropic$6.00$30.001,000,000
Claude Fable 5.2claude-fable-5.2Anthropic$4.00$20.001,000,000
Claude Fable 5claude-fable-5Anthropic$3.00$15.001,000,000
Claude Opus 5.5claude-opus-5-5Anthropic$2.716$9.701,000,000
Claude Sonnet 4.6claude-sonnet-4-6Anthropic$1.80$9.001,000,000
Claude Opus 4.6claude-opus-4-6Anthropic$1.80$7.501,000,000
Claude Opus 4.7claude-opus-4-7Anthropic$1.80$7.501,000,000
Claude Opus 4.8claude-opus-4-8Anthropic$1.80$7.501,000,000
Claude Opus 5claude-opus-5Anthropic$1.80$7.501,000,000
Claude Haiku 4.5claude-haiku-4-5Anthropic$0.60$3.00200,000
Claude Sonnet 5claude-sonnet-5Anthropic$1.20$3.001,000,000
Claude Sonnet 5.5claude-sonnet-5-5Anthropic$1.20$3.001,000,000
Claude Haiku 5.5claude-haiku-5-5Anthropic$0.0582$0.14551,000,000

美元/每百萬 token

08正式上線之前

替正式環境另外建一把金鑰,視需要設定預算、每日消費上限、模型白名單與 IP 白名單。每把金鑰預設每分鐘 600 次請求,可以在金鑰上調整。請求失敗時,依回應標頭 retry-after 決定多久後重試,並把錯誤訊息裡的請求 id 留在日誌,查問題時用得到。完整的 API 文件在 Docs(英文)。

常見問題

Base URL 要不要加 /v1?
要。填 https://api.relayswitch.io/v1,SDK 會自己接上 /messages 或 /chat/completions。
怎麼確認回應真的來自 Claude,而不是被換成別的模型?
有兩個不必相信本頁說法的辦法。每個模型每天會收到同一則檢查提示,回答與先前的結果比對,結果公開在 https://api.relayswitch.io/v1/proof,不需要金鑰就能查。另外每次請求都有一張附簽章的收據(GET https://api.relayswitch.io/v1/requests/:id/receipt),寫明模型 id、計費 token 與費用,可以用公鑰離線驗證。
某條線路故障時會怎樣?
同一個模型 id 配有多條線路,其中一條回覆 5xx 或 429 時,請求會自動轉到下一條,價格不變。只有一條線路的模型則回覆 503,可以稍後重試或換一個模型 id。
請求失敗會扣款嗎?
在送到模型之前就失敗的請求,或模型沒有回應的請求,都不扣款。
我送出的提示內容會被保存嗎?
請求內容只做轉送,不儲存,也不用於訓練。
支援串流輸出與工具呼叫嗎?
支援。Chat Completions、Responses 與 Anthropic Messages 三種格式都能使用串流輸出與工具呼叫。

換掉 Base URL 和金鑰就能開始

Base URL 是 https://api.relayswitch.io/v1。Claude 模型依目錄即時價格計費,每次請求都有收據。