ホーム / ブログ / OpenRouter API
ENGINEERING_BLOG · 2026.07.24

OpenRouter API 完全ガイド:
GPT・Claude・Gemini を1キーで使う(2026)

GPT、Claude、Gemini、Grok、オープンウェイトモデルを本番 Agent で使い分ける開発者は、ベンダーごとの API キー管理、SDK 差分、請求サイクルの分散に直面しています。OpenRouter はこれらを OpenAI 互換エンドポイント 1 本に集約し、70 以上のプロバイダー、400 以上のモデルへ単一キーでアクセスできます。本記事は OpenRouter の定義、モデル/プロバイダールーティング、5 つの導入メリット、直接 API との比較、curl/Python/OpenAI SDK/Node/ストリーミング/fallback のコード例、料金体系、SEO 戦略、FAQ、MACNOX への接続を、比較表と実装手順中心に整理します。

  • 要点:base_urlhttps://openrouter.ai/api/v1 に変更し、既存 OpenAI SDK コードを維持したまま model スラッグを差し替えます。token 上乗せなし、クレジット購入時 5.5% 手数料(最低 $0.80)です。
  • 無料枠:25 以上の無料モデル、未購入時 50 リクエスト/日$10 チャージ後 1,000 リクエスト/日、上限 20 req/min
  • 向いているケース:プロトタイプ、マルチモデル Agent、fallback 自動化。エンタープライズ SLA、カスタム fine-tune、単一ベンダーのデータレジデンシー要件がある場合は直接 API を検討してください。

SECTION 01 マルチベンダー LLM API 導入で開発者が直面する4つの痛点

2026 年上半期、本番 AI スタックの多くが複数モデルを併用しています。OpenRouter 以前に発生する典型的なコストは次のとおりです。

  • キー管理の分散:OpenAI、Anthropic、Google、xAI、Moonshot など各社が独自コンソール、レート制限、認証ヘッダーを要求し、CI/CD へのキー配布がセキュリティ監査の対象になります;
  • SDK 断片化:Anthropic Messages API と OpenAI Chat Completions はリクエスト形式が異なり、新モデル追加のたびに Agent フレームワークへアダプター層が増えます;
  • 障害時の盲点:単一プロバイダー停止時、代替モデル ID・単価・レイテンシプロファイルを事前に把握していなければ Agent パイプラインが停止します;
  • 請求の不透明さ:Kimi K3 と Claude、GPT の token 単価比較だけでは不十分で、統合工数が実コストの大半を占めるケースが増えています。

一行定義:OpenRouter は統合 LLM API ゲートウェイです。1 キー、1 エンドポイント(https://openrouter.ai/api/v1)、70+ プロバイダー / 400+ モデル(GPT-5.x、Claude 4.x、Gemini 2.x、Grok、DeepSeek、Kimi 等)へ OpenAI 互換でアクセスし、fallback と BYOK をオプション提供します。

SECTION 02 OpenRouter とは?ルーティング仕組みと料金モデル

OpenRouter はアプリケーションと上流 LLM プロバイダーの間に位置します。標準 Chat Completions リクエストを送ると、プロバイダー選択、負荷分散、請求集約を代行します。

モデルルーティング vs プロバイダールーティング
観点 モデルルーティング プロバイダールーティング
リクエスト形式 完全スラッグ、例 anthropic/claude-sonnet-4 ベンダープレフィックス、例 anthropic/
選択ロジック 同一モデルをホストする最安/最速プロバイダーを自動選択 固定ベンダー内のモデルから選択
適用シーン 特定モデル tier へのコスト最適化 コンプライアンス、請求、機能 parity のためのベンダー固定
fallback models 配列で順次試行 ベンダー内に留まる(クロスベンダーは明示追加が必要)
典型例 GPT → Claude → Gemini の障害時自動切替 Agent Anthropic 契約を維持しつつ単一エンドポイント化

無料モデルとレート制限

OpenRouter は 25 以上の無料モデル(コミュニティ/ベンダー提供 tier)を維持しています。2026 年 7 月時点の制限は次のとおりです。

  • クレジット未購入:無料モデル 50 リクエスト/日(残高非消費);
  • $10 以上チャージ後:無料モデル 1,000 リクエスト/日
  • レート上限:無料モデル共通 20 リクエスト/分

料金 — token 上乗せなし

OpenRouter 手数料体系(2026 年 7 月)
種別 備考
token 単価 上乗せゼロ 各プロバイダー公開リスト価格をそのまま適用
クレジットカードチャージ 5.5%(最低 $0.80 token 課金ではなく残高追加時に適用
暗号通貨チャージ 5% 代替決済レール
BYOK 月 100 万リクエスト無料 超過分は標準料金、上流請求はベンダー側

SECTION 03 OpenRouter vs 直接 API:比較表、5 つのメリット、使わないべき場面

OpenRouter vs ベンダー直接 API — 意思決定マトリクス
要素 OpenRouter 直接 API
セットアップ 1 キー、1 エンドポイント、OpenAI SDK 差し替え ベンダーごとにキー、SDK、エラー処理
モデル範囲 400+ モデル、70+ プロバイダー 当該ベンダーのみ
fallback models 配列で組込み 自前実装・保守
token コスト リスト価格 + チャージ 5.5% リスト価格、大量契約で割引可
レイテンシ ゲートウェイ 1 ホップ(通常 ms 単位) 直接接続で最低 RTT
コンプライアンス ゲートウェイ経由、OpenRouter 規約 BAA、SOC2、リージョン専用容量
最適デフォルト マルチモデル原型、Agent、コスト比較 交渉済みエンタープライズ本番

開発者が OpenRouter を選ぶ5つの理由

  1. 1 統合で全モデル:model スラッグ差し替えのみ。 Grok 4.5 と Claude、GPT のベンチマーク比較でも同一クライアントを再利用できます。
  2. OpenAI SDK 互換:base_urlapi_key 変更だけで Python/Node/TS コードを維持できます。
  3. 自動 fallback:1 リクエストで Claude → GPT → Gemini を順次試行可能です。
  4. 透明な料金:モデルカタログに token 単価が表示され、隠れスプレッドがありません。
  5. 無料 tier で実験:25+ 無料モデルで契約前に Agent 原型を検証できます。

OpenRouter を使わないべき場面

  • エンタープライズ SLA / BAA:医療・金融で特定ベンダーとの BAA が必要な場合、第三者ゲートウェイ経由は法務レビューが必要です;
  • カスタム fine-tune:非公開 GPT-4 fine-tune や Vertex AI カスタムモデルは公開カタログに含まれません;
  • 厳格なデータレジデンシー:推論が特定リージョン専用容量に限定される契約では代替になりません;
  • 超低レイテンシ:リアルタイム音声・取引向けパイプラインではゲートウェイ分の ms が影響します;
  • 大量交渉割引:月額 6 桁 USD 規模では直接契約 15〜30% 割引の方が有利な場合があります。

SECTION 04 OpenRouter API コード例:curl、Python、OpenAI SDK、Node、ストリーミング、fallback

以下は OpenRouter ベース URL とダッシュボード API キーを前提とします。上流更新後は公式ドキュメントでヘッダーとパラメータを再確認してください。

curl — 基本 Chat Completion

openrouter_curl.sh
curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "HTTP-Referer: https://your-app.com" \
  -H "X-Title: Your App Name" \
  -d '{
    "model": "openai/gpt-4o",
    "messages": [{"role": "user", "content": "モデルルーティングを1段落で説明してください"}]
  }'

Python — requests

openrouter_requests.py
import os, requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}",
        "HTTP-Referer": "https://your-app.com",
        "X-Title": "Your App Name",
    },
    json={
        "model": "anthropic/claude-sonnet-4",
        "messages": [{"role": "user", "content": "この API 設計を要約してください..."}],
    },
)
print(resp.json()["choices"][0]["message"]["content"])

OpenAI SDK — 差し替え

openrouter_openai_sdk.py
from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="your_openrouter_api_key",
)

response = client.chat.completions.create(
    model="google/gemini-2.5-pro",
    messages=[{"role": "user", "content": "GPT と Claude のコードレビュー向きを比較してください。"}],
)
print(response.choices[0].message.content)

Node.js — fetch

openrouter_node.mjs
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.OPENROUTER_API_KEY}`,
    "Content-Type": "application/json",
    "HTTP-Referer": "https://your-app.com",
    "X-Title": "Your App Name",
  },
  body: JSON.stringify({
    model: "x-ai/grok-4",
    messages: [{ role: "user", content: "TypeScript の retry ヘルパーを書いてください。" }],
  }),
});
const data = await resp.json();
console.log(data.choices[0].message.content);

ストリーミング

openrouter_stream.py
from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="your_openrouter_api_key",
)

stream = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "ストリーミングで応答してください。"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

fallback — models 配列

openrouter_fallback.json
{
  "models": [
    "anthropic/claude-sonnet-4",
    "openai/gpt-4o",
    "google/gemini-2.5-flash"
  ],
  "messages": [
    {"role": "user", "content": "Claude が落ちたら GPT、次に Gemini を試してください。"}
  ]
}

この JSON を /chat/completions に POST します。model を省略(または先頭スラッグ指定)すると、OpenRouter が順次試行します。

SECTION 05 OpenRouter 導入 6 ステップ:登録から本番 fallback まで

  1. アカウント作成と API キー発行:openrouter.ai で登録し Settings → Keys からキーを作成します。シークレットマネージャーに保存し、git へコミットしないでください。
  2. クレジット追加(無料モデルのみなら任意):1,000 リクエスト/日の無料 tier が必要なら $10 以上チャージします。有料モデルはリスト価格で残高から消費されます。
  3. クライアントを OpenRouter エンドポイントへ向ける:OpenAI SDK では base_url=https://openrouter.ai/api/v1、curl/requests/fetch では同 URL を指定します。
  4. カタログから model スラッグを選ぶ:models API またはダッシュボードで openai/gpt-4oanthropic/claude-sonnet-4google/gemini-2.5-promoonshotai/kimi-k3 等を確認します。
  5. 本番 Agent に fallback を設定する:models 配列に 2〜3 個の代替を追加し、実際に応答したモデルをログに記録してコストとレイテンシを調整します。
  6. 帰属ヘッダーと使用量監視:HTTP-RefererX-Title を付与します(一部無料モデルで必須)。ダッシュボードで予算アラートを設定してから CI/CD や顧客向け Agent に接続します。

SECTION 06 引用可能データ、日本語 SEO 戦略、本番への接続

  • カタログ規模:70+ プロバイダー400+ モデル、エンドポイント https://openrouter.ai/api/v1
  • 無料 tier:25+ 無料モデル、未購入 50 req/日、$10 チャージ後 1,000 req/日20 req/min 上限。
  • 収益モデル:token 上乗せなし、クレジット 5.5%(最低 $0.80)、暗号通貨 5%、BYOK 月 100 万 req 無料
  • ルーティング:モデルルーティングはスラッグ最適化、プロバイダールーティングはベンダー固定、models 配列で fallback。
  • SDK:OpenAI SDK の base_url / api_key 変更のみで動作。
  • 帰属ヘッダー:HTTP-RefererX-Title は無料モデル leaderboard 表示に必要です。

発版後は以下の公式ソースで料金・制限・ API 挙動を再確認してください。

OpenRouter 公式ドキュメント

OpenRouter FAQ — 料金、無料モデル、BYOK

OpenRouter models API — ライブカタログと token 単価

日本語 SEO:キーワードマトリクスとタイトル信号

日本語向け OpenRouter 検索意図マトリクス
クラスタ 検索意図 タイトルに入れる信号
OpenRouter API 使い方 接続手順 完全ガイド、手順、2026
OpenRouter vs OpenAI API 直接 API との比較 比較、メリット、デメリット
OpenRouter 無料モデル コスト試作 無料枠、料金解説
OpenRouter Python コピペ実装 コード例、サンプル
本記事 フルファネル 完全ガイド + 比較表 + コード + FAQ

英語ページが流入ゼロのとき — 診断チェックリスト

  • CDN / WAF:US・EU エッジから HTTP 200 が返るか確認します;
  • hreflang 誤設定:EN を機翻 stub に向けると両言語が評価低下します;
  • robots / noindex:/en/blog/ が誤ってブロックされていないか;
  • sitemap:英語 URL が lastmod 付きで登録されているか;
  • CSR 空壳:MACNOX ブログは静的 HTML — 本文を JS のみで描画しないでください;
  • 機翻検知:英語は段落構成と例を独立させて書き直します;
  • キーワード不一致:英語検索は "OpenRouter API tutorial" 型 — 直訳タイトルを避けます。

canonical / sitemap / 配信チャネル

  • canonical:各言語版は自身の URL のみ(例 https://macnox.com/ja/blog/2026-openrouter-api-guide-gpt-claude-gemini.html);
  • 日本語配信:Qiita、Zenn、はてなブログ、X スレッド;
  • 英語配信:dev.to、Hacker News、Reddit r/LocalLLaMA;
  • Schema:BlogPosting + FAQPage を head に統合(本ページ参照)。
SEO 優先度 P0–P2
優先度 アクション 担当
P0(1 週目) canonical / robots / sitemap 修正、FAQPage Schema、全球 200 確認 Engineering + SEO
P1(2–3 週目) 独立日英記事公開、動作コード、GSC / Bing 送信 Content + DevRel
P2(1–2 ヶ月) Qiita/dev.to 配信、関連記事 3+ 本リンク、四半期料金更新 Marketing

OpenRouter はモデルアクセスを統合しますが、マルチモデル API Agent、macOS CI/CD、7×24 自動テストを組むチームには 3 つの本番ギャップが残ります。① ゲートウェイ障害はローカル Mac のスリープや再起動を解決しません;② VM macOS CI では Metal / Core ML 互換性と性能オーバーヘッドが発生します;③ デスク上の MacBook は 24/7 Agent ホストになりません。仮想化の性能损耗、長期安定性不足、Root 制限——これらが重なる環境では、ゼロオーバーヘッドのネイティブ Apple 算力、安定 iOS CI/CD、AI Agent 7×24 自動化が必要な本番において、MACNOX クラウド物理 Mac ノードが通常より優れた選択です。100% Apple 純正物理機、フル Root、Hypervisor オーバーヘッドなし、日/週/月契約。Kimi K3 マルチベンダー API 連携Grok 4.5 Agent コスト分析Mac Mini M4 レンタル vs 購入 TCOも参照してください。

SECTION 07 よくある質問 FAQ

OpenRouter とは何ですか?どのように動作しますか?

OpenRouter は OpenAI 互換 API ゲートウェイです。1 つの API キーで 70 以上のプロバイダー、400 以上のモデルへリクエストをルーティングします。OpenAI SDK の base_urlhttps://openrouter.ai/api/v1 に変更し、model ID を差し替えるだけで GPT、Claude、Gemini 等にアクセスできます。

OpenRouter は無料で使えますか?

25 以上の無料モデルがあります。クレジット未購入は 1 日 50 リクエスト、$10 以上チャージ後は 1 日 1,000 リクエストまで。無料モデルは 20 リクエスト/分に制限されます。

OpenRouter は token 価格に上乗せしますか?

token 上乗せはありません。プロバイダーのリスト価格がそのまま適用されます。収益はクレジット購入 5.5%(最低 $0.80)、暗号通貨 5%、BYOK 月 100 万超過分から得られます。

モデルルーティングとプロバイダールーティングの違いは?

モデルルーティングは特定スラッグ(例 anthropic/claude-sonnet-4)向けに最適プロバイダーを選びます。プロバイダールーティングは anthropic/ のようにベンダーを固定します。fallback 配列で代替モデルを順次試行できます。

OpenRouter を使うべきでない場面は?

エンタープライズ SLA、カスタム fine-tune、単一ベンダーのデータレジデンシー、最低レイテンシ要件、大量交渉割引がある場合は直接 API を検討してください。

BYOK(独自 API キー)は使えますか?

はい。上流ベンダーへの請求を維持しつつ OpenRouter 経由でルーティングできます。月 100 万 BYOK リクエストまでプラットフォーム手数料無料、超過分は標準料金が適用されます。