2026年 OpenRouter API 実践ガイド:GPT・Claude・Gemini 統合連携手順と判断マトリクス
OpenAI、Anthropic、Google、DeepSeek それぞれに API Key と請求ダッシュボードを持つ運用は、すでにコストが見えています。OpenRouter は統合 LLM API ゲートウェイとして、1 つの OpenAI 互換エンドポイントから GPT・Claude・Gemini を含む 400+ モデルへルーティングします。本稿は日本語で独立執筆した実践ガイドです。二重ルーティングの仕組み、5 つの採用理由と避けるべき場面、公式 API との比較表、実行可能なコード例、2026 年料金、FAQ、そして OpenClaw Agent を常時稼働のリモート Macに載せる理由まで順を追って説明します。
1. OpenRouter とは:統合 LLM API ゲートウェイと二重ルーティング
OpenRouter は、1 つの API Key と 1 つの OpenAI 互換エンドポイントで 70+ プロバイダー・400+ モデルにアクセスできる統合ゲートウェイです。ベンダーごとの SDK 差分を吸収し、既存の OpenAI 形式コードをほぼそのまま流用できます。
- エンドポイント:
https://openrouter.ai/api/v1/chat/completions - 認証:
Authorization: Bearer $OPENROUTER_API_KEY - モデル ID:
openai/gpt-4o、anthropic/claude-sonnet-4、google/gemini-2.5-proなどvendor/model形式
各リクエストで OpenRouter は独立した 2 つのルーティング判断を行います。これが単純プロキシとの決定的な違いです。
| レイヤー | 決定内容 | 制御フィールド |
|---|---|---|
| Model Routing | どのモデルが応答するか | model、または openrouter/auto |
| Provider Routing | 同一モデルをどのプロバイダー基盤が処理するか | provider オブジェクト(デフォルトは価格・可用性加重) |
主力プロバイダーが 429 や 5xx を返した場合、OpenRouter は別プロバイダーまたは models 配列の次候補へ自動フェイルオーバーします。モデル選定の背景データは《2026年5月 OpenRouter ランキング実証》と《Top10 トレンド選定ガイド》も参照してください。
2. 開発者が OpenRouter に切り替える 5 つの理由と使わないべき場面
- 1 Key で全フロンティアモデルに到達できる。 ベンダーごとの onboarding と Key ローテーションが 1 セットに集約されます。
- OpenAI コードからの移行コストが極小。
base_urlと API Key を差し替えるだけで、メッセージ配列・tool call・ストリーム処理は維持できます。 - アプリ側 retry なしのフェイルオーバー。 Provider Routing と
modelsfallback チェーンで 429 嵐をゲートウェイ層で吸収します。 - 統一請求と latency ダッシュボード。 実際に本番で動いているモデルの TTFT・スループット・コストを 1 画面で比較できます。
- token マークアップなし+無料枠。 25+ 無料モデルで Claude vs Gemini vs DeepSeek を同一プロンプトで A/B できます。
OpenRouter を避けるべき典型例(信頼性のある判断のために明示します):
- 単一モデルで月額数万ドル規模——5.5% チャージ手数料とゲートウェイ hop が直結より高くつく
- OpenAI Batch API、Anthropic Prompt Caching、Vertex 専用ツールなど公式専用機能が必須
- サブ 100ms の realtime ループ——追加 10–80ms が許容できない
- 米国第三者ゲートウェイ経由がコンプライアンス上不可
- ログポリシー不明な無料 preview モデルへ機密プロンプトを流す
3. OpenRouter vs 公式 API(OpenAI/Anthropic/Google)比較表
| 観点 | OpenRouter | 公式 API 直結 |
|---|---|---|
| アカウント | 1 アカウント・1 Key・1 ダッシュボード | ベンダーごとに signup・請求・Key 管理 |
| SDK 互換 | OpenAI 互換、base_url 変更のみ |
ベンダー固有 SDK と機能セット |
| モデル切替 | model 文字列 1 行 |
認証・スキーマ・adapter の書き換え |
| Failover | 組み込み provider/model 切替 | 自前 circuit breaker が必要 |
| token 価格 | 原価通過+クレジット購入 5.5% | 公式請求、エンタープライズ割引交渉可 |
| レイテンシ | +10–80ms 程度のゲートウェイ hop | 理論上最小 |
| コンプライアンス | 米国 OpenRouter インフラ経由 | リージョン指定・DPA・VPC オプション |
4. マルチベンダー連携で発生する 3 つの痛点
痛点 1:N ベンダー = N 倍の統合負債。 認証、レート制限、エラーコードマッピング、請求照合がベンダー数に比例します。OpenRouter は「モデル変更 = 文字列変更」を実現しますが、ゲートウェイ hop と中間層コンプライアンスは受け入れる必要があります。
痛点 2:単一 429 が Agent 全体を止める。 アプリ層だけで retry すると、ユーザーには「既読スルー」に見えます。Provider Routing + fallback はゲートウェイ層で吸収できます——ただしゲートウェイプロセス自体が 24/7 稼働していることが前提です。
痛点 3:コストとログのブラックボックス感。 複数請求書、無料 stealth モデルの retention 不明、米国中間層——中小チームは隠れコストを過小評価しがちです。token 単価・5.5% 手数料・データ越境を同時に評価してください。
5. 5 ステップ HowTo:アカウント作成から初回呼び出しまで
- openrouter.ai でアカウントを作成します。 メールまたは OAuth で登録します。個別 OpenAI/Anthropic アカウントは不要です。
- Settings → Keys で API Key を発行します。 環境名(
prod-agent等)で命名し、監査可能にします。 - Key を即座に安全な場所へ保存します。
sk-or-プレフィックスの Key は再表示されません。Git へ commit しないでください。 - 有料モデル利用時はクレジットをチャージします。 無料枠のみなら残高 0 でも動作しますが、有料 slug は残高不足でエラーになります(手数料 5.5% を忘れないでください)。
- 下記 cURL でスモークテストします。 HTTP 200 と
choices配列を確認します。
export OPENROUTER_API_KEY="sk-or-v1-..."
curl -s https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Reply with exactly: OpenRouter OK"}]
}' | jq -r '.choices[0].message.content'
6. コード例:cURL/Python/Node.js/ストリーミング/Fallback
cURL
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-H "HTTP-Referer: https://sftpmac.com" \
-H "X-Title: SFTPMAC OpenRouter Demo" \
-d '{
"model": "anthropic/claude-sonnet-4",
"messages": [
{"role": "user", "content": "量子コンピュータを一文で説明してください"}
]
}'
Python(requests)
import os
import requests
response = requests.post(
url="https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
"Content-Type": "application/json",
"HTTP-Referer": "https://sftpmac.com",
"X-Title": "SFTPMAC OpenRouter Demo",
},
json={
"model": "google/gemini-2.5-pro",
"messages": [
{"role": "user", "content": "クイックソートを Python で15行以内に書いてください"}
],
},
timeout=60,
)
response.raise_for_status()
print(response.json()["choices"][0]["message"]["content"])
Node.js(OpenAI SDK)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
defaultHeaders: {
"HTTP-Referer": "https://sftpmac.com",
"X-Title": "SFTPMAC OpenRouter Demo",
},
});
const completion = await client.chat.completions.create({
model: "deepseek/deepseek-chat",
messages: [{ role: "user", content: "OpenRouter を一文で説明してください" }],
});
console.log(completion.choices[0].message.content);
Python(OpenAI SDK ドロップイン)
import os
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"],
)
completion = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello from OpenRouter."}],
extra_headers={
"HTTP-Referer": "https://sftpmac.com",
"X-Title": "SFTPMAC OpenRouter Demo",
},
)
print(completion.choices[0].message.content)
ストリーミング
const stream = await client.chat.completions.create({
model: "anthropic/claude-sonnet-4",
messages: [{ role: "user", content: "秋について短い詩を書いてください" }],
stream: true,
});
for await (const chunk of stream) {
const text = chunk.choices[0]?.delta?.content;
if (text) process.stdout.write(text);
}
モデル Fallback(高可用性)
{
"model": "anthropic/claude-sonnet-4",
"models": [
"anthropic/claude-sonnet-4",
"openai/gpt-4o",
"google/gemini-2.5-pro"
],
"route": "fallback",
"messages": [{ "role": "user", "content": "インシデントを要約してください" }]
}
Claude が launch 時に rate limit されても、OpenRouter が順番に次モデルを試します。OpenClaw では openclaw.json に同じ primary/fallback slug を SecretRef と共に設定してください。
モデル一覧の取得
curl -s https://openrouter.ai/api/v1/models \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
| jq '.data[] | {id: .id, pricing: .pricing}' | head
7. 2026 年料金:token マークアップなし・5.5% 手数料・BYOK
| 費用項目 | 支払額 | 備考 |
|---|---|---|
| 有料 model token | プロバイダー公示の input/output 単価 | OpenRouter の token 上乗せなし |
| クレジット購入手数料 | 5.5%(最低 $0.80) | チャージ時のみ。リクエストごとではありません |
| 暗号資産チャージ | 追加約 5% | 任意の決済レール |
| 無料枠 | 25+ モデル $0 | 未チャージ約 50 回/日;$10+ で約 1000 回/日・20 req/min |
| BYOK | 月 100 万 req まで無料、その後 5% | 既存エンタープライズ Key を紐付け |
目安:月次の 5.5% 手数料が、2 ベンダー直結を維持するエンジニアリングコストを上回るなら、BYOK または最高流量 slug のみ直結するハイブリッドを検討してください。
8. よくある質問 FAQ
Q:OpenRouter は無料ですか? 25+ 無料モデルがあり、未チャージ約 50 回/日、$10 以上で約 1000 回/日です。有料モデルは token 原価で Credits から控除されます。
Q:token に上乗せはありますか? ありません。5.5% はクレジット購入時のみです。
Q:本番 Key は安全ですか? 米国ゲートウェイを経由します。規制データは DPA 付き公式 API または自前ホストを検討してください。
Q:OpenAI SDK は使えますか? はい。base_url と Key を差し替えるだけです。
Q:OpenRouter と LiteLLM の違いは? OpenRouter はホスト型ゲートウェイ+請求一体型、LiteLLM は自前運用プロキシです。Ops ゼロなら OpenRouter、オンプレ制御なら LiteLLM です。
Q:OpenClaw との組み合わせは? openclaw.json で provider と primary/fallback を設定し、24/7 Mac 上で doctor/probe を回してください。
9. まとめ:OpenRouter の価値・限界・リモート Mac への接続
OpenRouter はマルチベンダー LLM 統合を1 Key・1 Endpoint・model 文字列 1 行に圧縮します。二重ルーティングと組み込み Failover により、アプリ側 retry 実装を大幅に削減できます。token マークアップなしと 25+ 無料モデルは、2026 年のモデル乱立期における検証コストを下げます。
一方、ゲートウェイ hop による +10–80ms、大規模利用時の 5.5% 手数料、米国中間層コンプライアンスは無視できません。ノート PC で Agent を回すとスリープで channels が無応答になり——OpenRouter が健全でもユーザー体験は止まります。
本番 OpenClaw + OpenRouter 構成では、ゲートウェイ・ワークスペース・Key 管理を常時稼働 macOS ノードに置き、launchd 監督下で SFTP/rsync 同期するのが実務的です。SFTPMAC リモート Mac レンタルは Apple Silicon・SecretRef・OpenRouter fallback チェーン向けに設計されており、自宅 PC 兼ゲートウェイより、統合 LLM ルーティングを本番インフラとして運用するチームに適しています。