OpenRouter 統合 API ゲートウェイで GPT Claude Gemini を一括連携する概念図

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
  • モデル IDopenai/gpt-4oanthropic/claude-sonnet-4google/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. 1 Key で全フロンティアモデルに到達できる。 ベンダーごとの onboarding と Key ローテーションが 1 セットに集約されます。
  2. OpenAI コードからの移行コストが極小。 base_url と API Key を差し替えるだけで、メッセージ配列・tool call・ストリーム処理は維持できます。
  3. アプリ側 retry なしのフェイルオーバー。 Provider Routing と models fallback チェーンで 429 嵐をゲートウェイ層で吸収します。
  4. 統一請求と latency ダッシュボード。 実際に本番で動いているモデルの TTFT・スループット・コストを 1 画面で比較できます。
  5. 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:アカウント作成から初回呼び出しまで

  1. openrouter.ai でアカウントを作成します。 メールまたは OAuth で登録します。個別 OpenAI/Anthropic アカウントは不要です。
  2. Settings → Keys で API Key を発行します。 環境名(prod-agent 等)で命名し、監査可能にします。
  3. Key を即座に安全な場所へ保存します。 sk-or- プレフィックスの Key は再表示されません。Git へ commit しないでください。
  4. 有料モデル利用時はクレジットをチャージします。 無料枠のみなら残高 0 でも動作しますが、有料 slug は残高不足でエラーになります(手数料 5.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 ルーティングを本番インフラとして運用するチームに適しています。