用一組金鑰串接 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 都可以,但一次請求只能帶一把金鑰。
curl -i https://api.relayswitch.io/v1/messages \ -H "Authorization: Bearer sk-relay-..." \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -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 數,會和這次請求的收據一致。
import anthropic client = anthropic.Anthropic(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.messages.create( model="claude-fable-5.1", max_tokens=300, messages=[{"role": "user", "content": "Reply with ok"}],)print(reply.content[0].text)print(reply.usage)03已經在用 OpenAI SDK
原本照 OpenAI 格式寫的程式不用改結構:base_url 換成 https://api.relayswitch.io/v1,model 換成 Claude 的模型 id,請求走 /chat/completions。兩種格式用同一把金鑰、同一筆餘額,價格也一樣。
from openai import OpenAI client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.chat.completions.create( model="claude-fable-5.1", messages=[{"role": "user", "content": "Reply with ok"}],)print(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.1 | Anthropic | $6.00 | $30.00 | 1,000,000 |
| Claude Fable 5.2claude-fable-5.2 | Anthropic | $4.00 | $20.00 | 1,000,000 |
| Claude Fable 5claude-fable-5 | Anthropic | $3.00 | $15.00 | 1,000,000 |
| Claude Opus 5.5claude-opus-5-5 | Anthropic | $2.716 | $9.70 | 1,000,000 |
| Claude Sonnet 4.6claude-sonnet-4-6 | Anthropic | $1.80 | $9.00 | 1,000,000 |
| Claude Opus 4.6claude-opus-4-6 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 4.7claude-opus-4-7 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 4.8claude-opus-4-8 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 5claude-opus-5 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Haiku 4.5claude-haiku-4-5 | Anthropic | $0.60 | $3.00 | 200,000 |
| Claude Sonnet 5claude-sonnet-5 | Anthropic | $1.20 | $3.00 | 1,000,000 |
| Claude Sonnet 5.5claude-sonnet-5-5 | Anthropic | $1.20 | $3.00 | 1,000,000 |
| Claude Haiku 5.5claude-haiku-5-5 | Anthropic | $0.0582 | $0.1455 | 1,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 三種格式都能使用串流輸出與工具呼叫。