最終確認 2026-11-12

Claude API を Base URL とキーの変更だけで呼び出す

Anthropic SDK でも OpenAI SDK でも、Base URL を https://api.relayswitch.io/v1 に、キーを RelaySwitch のものに変えるだけで Claude を呼び出せます。Claude モデルは 13 個あり、カタログの単価どおりにトークン単位で課金されます。

01まず curl で確認する

SDK に組み込む前に、curl でキーと Base URL を確認します。Anthropic Messages 形式のエンドポイントは /messages です。キーは x-api-key と Authorization: Bearer のどちらのヘッダーでも送れますが、1 つのリクエストに付けられるキーは 1 つです。

ストリーミングを使うときは、リクエストの stream を true にします。レスポンスは server-sent events で返り、すべてのモデルが対応しています。

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"}]}'

02Anthropic SDK(Python)から呼ぶ

新しく書くコードや、Claude 固有の機能(system フィールド、ツール呼び出しのネイティブな構造、プロンプトキャッシュの指定)を使うコードは、Anthropic SDK で /messages を呼ぶのが素直です。変更するのは base_url と api_key の 2 か所で、リクエストボディ、モデル ID、ストリーミング、ツール呼び出しはそのままです。

レスポンスの usage に入る入力と出力のトークン数は、そのリクエストのレシートの記載と一致します。

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)

03OpenAI SDK のコードをそのまま使う

すでに OpenAI 形式で書かれたコードや、同じコードから他の開発元のモデルも呼びたい場合は /chat/completions を使います。model を Claude の ID に変えるだけで、コードの構造は変えずに済みます。

2 つの形式は同じキー、同じ残高を使い、料金も同じです。Claude の ID の書き方も共通です。

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)

04Claude モデルの料金

単位は米ドル / 100 万トークンで、表には入力と出力の単価を載せています。これとは別に、プロンプトキャッシュにヒットしたトークンに適用されるキャッシュ入力の単価があり、通常の入力より低くなっています。長いシステムプロンプト、繰り返し送る文書、複数ターンの会話履歴がヒットすると、この単価で課金されます。モデルごとのキャッシュ入力の単価は、モデル名のリンク先(英語)で確認できます。

リクエストごとのレシートには入力、キャッシュ入力、出力のトークン数が分けて記載されるので、1 件ずつ照合できます。料金の仕組み全体は料金ページにまとめています。

モデル開発元入力出力コンテキスト
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

米ドル / 100 万トークン

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経路でエラーが起きたか、応答できる経路が一時的にありません。

06本番に出す前に

本番環境には専用のキーを作り、必要に応じて予算、モデルの許可リスト、IP の許可リストを設定します。何も設定しないキーの既定は 1 分あたり 600 リクエストで、キーごとに変更できます。

失敗したリクエストは retry-after を見て再試行の間隔を決めます。レスポンスヘッダーのリクエスト ID をログに残しておくと、調査のときにその 1 回の呼び出しを特定できます。同じ ID に複数の経路があるモデルでは、1 つの経路が 5xx や 429 を返すとリクエストは次の経路へ自動で回り、料金は変わりません。経路が 1 つだけのモデルは 503 を返します。

エンドポイントの一覧はドキュメント(英語)にあります。

よくある質問

Anthropic の Console で使う Claude API と、コード上は何が違いますか?
違いは Base URL とキーの 2 か所です。Anthropic の Console でアカウントを作って前払いする代わりに、RelaySwitch に前払いし、RelaySwitch のキーで呼び出します。リクエストボディ、モデル ID、ストリーミング、ツール呼び出しはそのままです。
Base URL に /v1 は必要ですか?
https://api.relayswitch.io/v1 をそのまま指定してください。SDK が /messages や /chat/completions を自動で付け足します。
ストリーミングとツール呼び出しには対応していますか?
対応しています。stream を true にすると server-sent events で返ります。Chat Completions、Responses、Anthropic Messages のいずれも、ストリーミングとツール呼び出しに対応しています。
呼び出しているのが本当に Claude かどうか、どう確認できますか?
全モデルに毎日同じチェック用プロンプトを送り、過去の応答と比較した結果を https://api.relayswitch.io/v1/proof で公開しています。加えて、リクエストごとの署名付きレシートにモデル ID、課金トークン数、料金が記載され、公開鍵を使ってオフラインで検証できます。
プロンプトの内容は保存されますか?
リクエストの本文は中継するだけで、保存せず、学習にも使いません。
Node.js からも使えますか?
使えます。Anthropic の SDK(@anthropic-ai/sdk)で baseURL と apiKey を指定すれば、Python と同じように messages を呼び出せます。

base_url を 1 行変えるだけ

Base URL は https://api.relayswitch.io/v1。Claude モデルはカタログの単価どおりに、トークン単位で課金されます。