OpenRouter APIの使い方:キー・料金・コード例【2026年版】
OpenRouter API の使い方を、これから組み込む開発者向けにまとめました。OpenRouter は、OpenAI・Anthropic・Google などの AI モデルを1つの API キーと1つの残高で呼び出せるサービスです。モデル名の文字列を書き換えるだけで、別の会社のモデルに切り替えられます。
サービスの全体像や日本語版の画面については、先に公開した記事で紹介しました。この記事はその続きとして、API キーの作り方・課金の仕組み・コード例に絞って解説します。


料金は「モデルの定価+クレジット購入時の手数料」というシンプルな形ですが、無料モデルの回数制限や、キーの上限額を知らずに始めると戸惑う所もあります。最初の1回を送るまでに押さえておきたいことを、順番に整理する——という位置づけです。
この記事はこんな人向けです
- OpenRouter で複数の AI モデルを1つの API から呼び出したい開発者
- クレジットや手数料、無料モデルの回数制限がどう決まるのか知りたい
- curl・Python・JavaScript でそのまま使えるコード例を探している
OpenRouter APIとは?一言でまとめると
「いろいろな会社の AI モデルへの窓口を1つにまとめた API」です。アプリは OpenRouter にだけリクエストを送り、model に書いた名前で、どの会社のモデルに届けるかが決まります。

| 項目 | 内容(2026年11月13日時点) |
|---|---|
| 入り口(ベース URL) | https://openrouter.ai/api/v1 |
| 主な呼び出し先 | /responses(公式の例の中心)と /chat/completions |
| 書き方 | OpenAI の API とほぼ同じ形。OpenAI の SDK もそのまま使える |
| 認証 | Authorization: Bearer <API キー>(キーは sk-or-v1- で始まる) |
| モデルの数 | テキストのモデルが472件、画像・音声なども含めると727件(一覧 API の件数) |
| 支払い | ドル建てのクレジットを前払いし、使った分が引かれる |
モデル名は 提供元/モデル名 の形です。たとえば Anthropic の Claude Haiku 5.5 なら anthropic/claude-haiku-5.5、OpenAI の GPT-6.1 Sol なら openai/gpt-6.1-sol と書きます。
直接契約との違い:OpenAI・AnthropicのAPIと比べる
各社と直接契約する場合と比べると、OpenRouter の良さと注意点がはっきりします。
| 比べる点 | 各社と直接契約 | OpenRouter 経由 |
|---|---|---|
| API キー | 会社ごとに作る | 1つで全部 |
| 請求 | 会社ごとに別々 | クレジット残高にまとまる |
| モデルの料金 | 各社の定価 | 各社の定価のまま(上乗せなし) |
| 追加でかかるもの | なし | クレジット購入時の手数料 5.5%(Standard) |
| 障害のとき | 自分で別の会社に切り替える | 予備のモデル・別の提供元へ自動で切り替えできる |
| 最新機能 | 公開と同時に使える | OpenRouter の対応を待つことがある |
※ 料金・手数料は2026年11月13日時点の公式料金ページによる
いちばん大きいのは、モデルの料金に上乗せがないことです。OpenRouter の取り分は「クレジットを買うときの手数料」だけで、個々のリクエストには手数料がかかりません。
一方で、1社のモデルだけを大量に使うなら、手数料の分だけ直接契約のほうが安くなります。複数社のモデルを比べたい・切り替えたいときに向いたサービス、というのが IT Picks の見方です。
どの会社の AI が何に向いているかは、次の記事で整理しています。

料金の仕組み:クレジットと手数料の計算方法
OpenRouter の料金は、① クレジットを買うときの手数料と、② リクエストごとのモデルの料金の2段階です。
| プラン | 購入時の手数料 | 主な違い |
|---|---|---|
| 無料 | なし | 無料モデルだけ。1日50リクエストまで |
| Standard(従量課金) | 5.5%(最低0.80ドル) | 600以上のモデル、予算・支出の管理 |
| Business(従量課金) | 8% | EU・米国内に限ったルーティングなど |
| Enterprise | 割引あり(契約) | SSO、SLA、請求書払い |
※ 2026年11月13日時点。暗号資産(USDC)での購入は手数料5%。税(VAT/GST)は別

① 手数料の計算例
Standard の手数料は5.5%で、最低0.80ドルです。少額で買うほど、最低額のぶん割高になります。
| 購入額 | 5.5% の額 | 実際の手数料 |
|---|---|---|
| 5ドル | 0.275ドル | 0.80ドル(最低額) |
| 10ドル | 0.55ドル | 0.80ドル(最低額) |
| 20ドル | 1.10ドル | 1.10ドル |
| 100ドル | 5.50ドル | 5.50ドル |
※ 公式の手数料の条件(5.5%・最低0.80ドル)から IT Picks が計算。税・カード会社の為替手数料は含まない
0.80ドルの最低額が効かなくなるのは、購入額が約14.5ドル以上のときです。何度も少しずつ買うより、まとめて買うほうが手数料の割合は下がります。
② リクエストごとの料金
モデルの料金は100万トークンあたりの単価で決まり、入力(送った文章)と出力(返ってきた文章)で単価が違います。リクエストが終わると、その費用がクレジット残高から引かれます。
たとえば「入力1,000トークン・出力500トークン」のリクエストを1,000回送ると、費用は次のようになります(2026年11月13日時点の単価)。
| モデル | 入力単価 | 出力単価 | 1,000回の費用 |
|---|---|---|---|
| Claude Haiku 5.5 | 0.10ドル | 0.50ドル | 約0.35ドル |
| DeepSeek V4.1 Flash | 0.30ドル | 1.20ドル | 約0.90ドル |
| GPT-6.1 Sol | 2ドル | 10ドル | 約7ドル |
| Claude Opus 5.5 | 4ドル | 20ドル | 約14ドル |
※ 単価は100万トークンあたり。モデル一覧 API の値から IT Picks が計算
同じ仕事でも、モデルを選ぶだけで費用が40倍ほど変わることがあります。まずは安いモデルで試し、足りなければ上のモデルに上げる順番がおすすめです。

③ 返金・有効期限・税
- 返金:購入から24時間以内なら、Credits のページのボタンで未使用分を返金できる。手数料は戻らない。暗号資産での購入は返金できない
- 有効期限:利用規約上、購入から1年たった未使用のクレジットは失効させることがある
- 失敗したリクエスト:エラーになった試行のモデル料金はかからない
- 税:料金に税は含まれず、必要に応じて VAT/GST が加算される
無料モデルの制限:1日50回と1,000回の違い
OpenRouter には無料で呼べるモデルもあります。モデル名の末尾が :free のものです。2026年11月13日時点の一覧 API では、テキストの無料版が14件、画像・音声なども含めると27件ありました。
無料モデルには、クレジットを買った累計額で決まる回数制限があります。
| クレジットの購入累計 | 1分あたり | 1日あたり |
|---|---|---|
| 10ドル未満 | 20回 | 50回 |
| 10ドル以上 | 20回 | 1,000回 |
※ 2026年11月13日時点の公式ドキュメント(Limits)による。失敗したリクエストも1日の回数に数える
ポイントは3つあります。
- 10ドル買うだけで、無料モデルの上限が20倍になる。使い切らなくても、累計の購入額で決まる
- アカウントやキーを増やしても上限は変わらない。OpenRouter 全体で数えている
- 残高がマイナスになると、無料モデルも使えなくなる
無料のまま使うときの注意
無料モデルを指定する方法は2つです。
meta-llama/...:freeのように無料版のモデル名を直接書くopenrouter/freeと書いて、使える無料モデルから自動で選ばせる(画像やツールなど、リクエストに必要な機能を持つモデルに絞って選ばれる)
注意したいのは、後で説明する予備のモデル(models)に有料モデルを混ぜた場合です。無料モデルが混んでいて有料モデルに切り替わると、その分は課金されます。確実に無料のままにしたいなら、予備にも :free のモデルだけを並べるか、openrouter/free だけを使います。
無料モデルは制限が厳しく、本番のサービスには向きません。動作の確認や学習用と考えておくのが無難です。
使い始める手順:アカウントからAPIキーまで
最初のリクエストを送るまでの流れは、次の5つです。

① アカウントを作る
openrouter.ai の右上の「Sign up」(日本語版では「新規登録」)から登録します。営業担当への連絡は不要で、すべて自分で手続きできます。
② クレジットを買う(有料モデルを使うとき)
設定の Credits のページで、カードなどで購入します。支払い方法はクレジットカード・デビットカード・AliPay・暗号資産(USDC)です。残高が一定より減ったら自動で買い足すオートチャージも設定できます。
無料モデルだけを試すなら、この手順は飛ばして構いません。
③ API キーを作り、上限額を決める
Keys のページでキーを作ります。このとき、キーの名前と上限額を決められます。上限には「日・週・月ごと」のリセットも選べます。
公式ドキュメントは、すべてのキーに上限を付けることを勧めています。上限のないキーが漏れたり、AI エージェントが止まらなくなったりすると、残高やオートチャージの分まで使い切られるおそれがあるためです。
| 使い方 | 上限の決め方の例 |
|---|---|
| 手元での試し | 月5ドルなど小さく |
| 個人のアプリ | 1か月に使う見込みの額 |
| 本番と開発 | キーを分けて、それぞれに上限 |
キーは sk-or-v1- で始まる73文字の文字列です。作ったらすぐ、パスワード管理ソフトなど安全な場所に控えます。
④ キーを環境変数に入れる
キーはコードに直接書かず、環境変数に入れて読み込みます。
ターミナル(ローカルの PC)
export OPENROUTER_API_KEY="sk-or-v1-..."
Git にキーを含むファイルを入れてしまう事故は、AI のコーディングツールを使っていても起こります。設定ファイルの扱いの注意は、次の記事が参考になります。

⑤ リクエストを送る
あとはコードから呼び出すだけです。書き方は次の節で、curl・Python・JavaScript の3つを紹介します。
コード例:curl・Python・fetchで呼び出す方法
ここからのコードは、OpenRouter の公式ドキュメントの例に沿ったものです。どれも実行には API キーが必要で、送った分だけクレジットが引かれます(無料モデルを除く)。
公式の Quickstart は、OpenAI の新しい形式の Responses API(/api/v1/responses) を中心に説明しています。昔からある Chat Completions(/api/v1/chat/completions) も使えるので、既存のコードはそのまま動かせます。

| 呼び出し先 | 送る中身 | 向いている場面 |
|---|---|---|
| /api/v1/responses | model と input(文字列でも可) |
これから新しく書くとき |
| /api/v1/chat/completions | model と messages(役割つきの会話) |
既存の OpenAI 向けコードを移すとき |
① curl で送る
いちばん手軽な確認方法です。モデルに openrouter/free を指定すると、無料モデルで動きます。
ターミナル(ローカルの PC)
curl https://openrouter.ai/api/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-d '{
"model": "openrouter/free",
"input": "日本の首都はどこですか?一言で答えてください。"
}'
返ってきた JSON の model を見ると、実際にどの無料モデルが選ばれたかが分かります。
② Python(OpenAI の SDK)で送る
OpenAI の公式 SDK(pip install openai)を使う場合は、base_url と API キーを差し替えるだけです。
Python(OpenAI の SDK)
from os import getenv
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=getenv("OPENROUTER_API_KEY"),
)
response = client.responses.create(
model="anthropic/claude-haiku-5.5",
input="OpenRouterを一言で説明してください。",
)
print(response.output_text)
注意点は、キーを明示的に渡すことです。渡し忘れると SDK が OPENAI_API_KEY を読みにいき、「OpenRouter のキーではない」という 401 エラーになります。
既存のコードが Chat Completions の形なら、client.chat.completions.create(model=..., messages=[...]) のまま、base_url と api_key を変えるだけで動きます。
OpenRouter 専用の SDK(pip install openrouter、npm install @openrouter/sdk)もあります。型の補完が効くので、新しく書くならこちらも選択肢です。
③ JavaScript(fetch)で送る
ライブラリなしで、ブラウザ以外の Node.js などから呼ぶ例です。
Node.js(fetch)
const res = await fetch("https://openrouter.ai/api/v1/responses", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "openai/gpt-6.1-sol",
input: "OpenRouterを一言で説明してください。",
}),
});
const data = await res.json();
const message = [...data.output].reverse().find((item) => item.type === "message");
console.log(message?.content.find((part) => part.type === "output_text")?.text);
ブラウザで動くコードに API キーを書くのは避けます。ページを見た人なら誰でもキーを読めてしまうためです。キーは必ずサーバー側に置きます。
④ 予備のモデルを指定する
model の代わりに models に優先順でモデルを並べると、最初のモデルの提供元が止まっていたり混んでいたりしたとき、次のモデルを自動で試します。
リクエストの本文(JSON)
{
"models": ["anthropic/claude-haiku-5.5", "deepseek/deepseek-v4.1-flash"],
"input": "OpenRouterを一言で説明してください。"
}
Python の OpenAI SDK から送るときは、extra_body={"models": [...]} の形で渡します。予備のモデルにもそれぞれの料金がかかる点は、無料モデルの節で触れたとおりです。
ヘッダーの HTTP-Referer と X-OpenRouter-Title
公式の例には HTTP-Referer(サイトの URL)と X-OpenRouter-Title(アプリ名)のヘッダーが出てきます。これは任意で、付けると OpenRouter のランキングにアプリが表示されます。社内ツールなど、名前を出したくない場合は付けなくて構いません。
モデルの選び方:一覧APIで料金を調べる方法
モデル選びで迷ったら、モデル一覧 API(GET https://openrouter.ai/api/v1/models)を使うのが確実です。API キーなしで呼べて、全モデルの料金と性能の情報が JSON で返ってきます。

① 料金の数字の読み方
一覧 API の pricing は、1トークンあたりのドルで書かれています。100万を掛けると、料金ページの「100万トークンあたり」の値になります。
| 項目 | 意味 | 例(Claude Haiku 5.5) |
|---|---|---|
| prompt | 入力1トークンの料金 | “0.0000001” → 100万あたり0.10ドル |
| completion | 出力1トークンの料金 | “0.0000005” → 100万あたり0.50ドル |
| input_cache_read | キャッシュした入力の読み出し | “0.00000001” |
| web_search | Web 検索1回の料金 | “0.01” |
| overrides | 条件つきの別料金 | 入力10万トークン超で単価が上がる |
"0" は無料という意味です。overrides には、長い入力のときや時間帯で料金が変わる条件が入ります。長い文章をまとめて送る使い方では、この欄も確認しておくと、思わぬ請求を防げます。
② 便利な絞り込み
一覧 API には、URL の後ろに条件を付けて絞り込む機能があります。
| 付ける条件 | できること |
|---|---|
?sort=pricing-low-to-high |
安い順に並べる |
?supported_parameters=tools |
ツール呼び出し(関数呼び出し)に対応したモデルだけ |
?output_modalities=all |
画像・音声・埋め込みなども含めた全モデル |
1つのモデルだけを見たいときは、/api/v1/model/anthropic/claude-haiku-5.5 のように提供元とモデル名を付けて呼びます。
③ 「:batch」と「〜latest」の意味
一覧には anthropic/claude-haiku-5.5:batch のような項目もあります。これは24時間以内に結果を返す非同期の一括処理(Batch API)用で、2026年11月13日時点の単価は通常の約半額でした。急がない大量の処理なら検討の価値があります。
公式の例に出てくる ~openai/gpt-sol-latest のような「〜latest」は、そのシリーズの最新版に自動で切り替わる別名です。便利な反面、知らないうちにモデルが変わります。本番では openai/gpt-6.1-sol のようにモデル名を固定しておくと安心です。
エラーと残高の確認方法
うまく動かないときは、まずHTTP のステータスコードを見ます。

① 401:キーの問題
キーが無い・間違っている・削除済みのときに出ます。メッセージで原因を見分けられます。
| メッセージ | 原因 |
|---|---|
| No API key in the Authorization header | 環境変数が空(設定し忘れ) |
| Invalid API key: this is not an OpenRouter API key | OpenAI など別の会社のキーを送っている |
| API key expired | キーの期限切れ |
| No cookie auth credentials found | 認証情報を何も付けずに送っている |
② 402:お金の問題
残高が足りない、キーの上限額に達した、同時に送ったリクエストの見積もりが残高の枠を超えた、のどれかです。エラーの metadata.limit_source を見ると、どれに当たったかが分かります。
③ 429:回数の問題
無料モデルの回数制限か、提供元の混雑です。少し待ってから再試行し、Retry-After ヘッダーがあればその秒数に従います。無料モデルなら10ドル分のクレジットを買う、有料版に切り替える、予備のモデルを並べる、のいずれかで解決します。
④ 404:モデルの問題
モデルが提供終了になったときや、名前を間違えたときに出ます。一覧 API でモデル名を確かめます。
残高と使った額を確かめる
API キーの残りの上限や使用量は、GET https://openrouter.ai/api/v1/key で確認できます(キーが必要)。リクエストごとの費用は、応答の usage.cost に毎回入っているので、ログに残しておくと月の費用を集計しやすくなります。
AI の API で「思ったより費用がかかった」を防ぐ考え方は、軽いモデルを使い分ける記事でも紹介しています。

実際に API を呼んでみた
2026年11月13日に、OpenRouter の API を API キーを付けずに 呼んでみました。料金やモデルの情報はキーなしでも返ってきて、文章の生成だけがキーを求められる、という分かれ方になっています。
① モデルの一覧を取る
ターミナル
curl https://openrouter.ai/api/v1/models
キーなしでも HTTP 200 で返ってきました。テキストのモデルは 472件 で、?output_modalities=all を付けると 727件 に増えます。モデル名が :free で終わる無料版は、テキストで 14件、全体で 27件 でした。提供元は、テキストのモデルだけで 69種類 あります。
モデル一覧のページで料金を「無料」に絞ると、タブに「Text 14」と出て、API の件数と同じでした。各モデルには「$0/M input tokens」「$0/M output tokens」と書かれています。

② 1つのモデルの料金を見る
ターミナル
curl https://openrouter.ai/api/v1/model/anthropic/claude-haiku-5.5
pricing には prompt(”0.0000001″)・completion(”0.0000005″)のほか、web_search・キャッシュの料金と、入力が10万トークンを超えたときの overrides が入っていました。100万倍すると、入力0.10ドル・出力0.50ドルです。対応する呼び出し先(endpoints)には、/api/v1/responses や /api/v1/chat/completions などが並んでいます。

③ キーなしで文章の生成を頼む
ターミナル
curl -X POST https://openrouter.ai/api/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "openrouter/free"}'
実行結果
{"error":{"message":"No cookie auth credentials found","code":401}}
こちらは 401 が返りました。上の「401:キーの問題」の表の、認証情報を何も付けずに送ったときのメッセージです。モデルを選ぶ・料金を比べるところまではキーなしで進められるので、キーを作るのは実際に呼び出す直前で十分です。
よくある質問
Q. OpenRouter の API は無料で使えますか?
A. :free のモデルと openrouter/free は無料です。ただし1日50回(10ドル以上購入済みなら1,000回)までで、本番向きではありません。有料モデルはクレジットの購入が必要です。
Q. 料金は日本円で払えますか?
A. 料金は米ドル建てです。カードで払うと、カード会社の換算レートで円に直して請求されます。為替や海外利用の手数料はカード会社によって違います。
Q. OpenAI と直接契約するより高くなりますか?
A. モデルの単価は同じで、クレジット購入時の手数料(Standard は5.5%、最低0.80ドル)の分だけ高くなります。複数社のモデルを1つのキーで使える便利さとの引き換えです。
Q. 送った内容は AI の学習に使われますか?
A. OpenRouter は利用者のデータを学習に使わないとしています。ただし実際に処理するのは各社の提供元なので、社内の情報を送る場合は、データを保持しない提供元(ZDR)に限る設定も検討します。
Q. 自分の OpenAI のキーを使えますか?
A. 使えます(BYOK)。この場合、モデルの料金は各社から直接請求されます。Standard と Business では、定価換算で月25,000ドル分まで OpenRouter の手数料なし、超えた分は5%です。
まとめ
OpenRouter API の使い方のポイントをまとめます。
- 入り口:https://openrouter.ai/api/v1(OpenAI の SDK もそのまま使える)
- 呼び出し先:/responses(新しく書くとき)、/chat/completions(既存コードの移行)
- モデルの料金:各社の定価のまま。一覧 API でキーなしで調べられる
- 手数料:クレジット購入時に 5.5%(最低0.80ドル)。15ドル前後より少額だと割高
- 無料モデル:1日50回、10ドル以上買うと 1日1,000回
- キーの管理:上限額を付け、環境変数に置き、ブラウザのコードに書かない
- 返金:購入から24時間以内の未使用分だけ(手数料は戻らない)
まずは openrouter/free で1回送ってみて、動いたら上限額を付けたキーで有料モデルに切り替えるのが、失敗の少ない始め方です。
