OpenRouter は、OpenAI・Google・Anthropic・Mistral など 340 以上のLLMを 1つのAPIエンドポイントで呼び分けられる プロキシサービスです。「今日は Gemma で試して、本番は Claude に切り替える」という使い方を、コードのURLを1行変えるだけで実現できます。
Ubuntu から試す場合、セットアップは pip3 install openai だけで完了します。OpenAI SDK がそのまま動くので、既存の Python スクリプトをほぼ変更せずに使い始められます。
本記事では Ubuntu 22.04 LTS を使って、OpenRouter への接続から無料モデルでの動作確認まで実際に手を動かした結果を載せます。公式ドキュメントの Quickstart をベースに、詰まりやすいポイントも補足します。
この記事のポイント
pip3 install openaiでインストール完了。追加ライブラリ不要OPENROUTER_API_KEYを設定し、base_urlをhttps://openrouter.ai/api/v1に変えるだけで動く- 2026-06-21 時点で 340 モデル対応、うち 23 モデルが無料で使える(実測)
modelパラメータをコード1行変えるだけでLLMを切り替えられる- curl での疎通確認から Python コードでのチャットまで順を追って解説
目次
- OpenRouter とは
- 動作確認済み環境
- アカウント作成と API キー発行
- Ubuntu 側のセットアップ
- curl で動作確認する
- Python コードで使う
- 使えるモデルと無料枠
- よくあるエラーと解決策
- まとめ
OpenRouter とは
OpenRouter は複数のLLMプロバイダーを束ねたゲートウェイサービスです。利用者はモデルを切り替えてもエンドポイントの URL を変える必要がなく、model パラメータだけを書き換えます。

個人での利用で便利な点が 2 つあります。1 つ目は 無料モデルが常時 20 件以上ある こと。Google Gemma 4 や NVIDIA Nemotron など、コンテキスト長 100 万トークンのモデルも無料で使えます(2026-06-21 実測)。2 つ目は OpenAI SDK と完全互換なこと。PyPI に公開されている openai パッケージをそのまま使えるので、環境構築でつまずく部分が少ないです。

動作確認済み環境
| 項目 | バージョン・環境 |
|---|---|
| OS | Ubuntu 22.04.5 LTS (Jammy Jellyfish) |
| Python | 3.10.12(apt 標準パッケージ) |
| pip | 22.0.2(python3-pip 22.0.2+dfsg-1ubuntu0.7) |
| openai パッケージ | 2.43.0(pip install openai) |
| curl | 7.81.0(Ubuntu 22.04 標準) |
| 検証日 | 2026-06-21 |

アカウント作成と API キー発行
①アカウントを作成する
openrouter.ai にアクセスして「Sign in」からアカウントを作成します。Google や GitHub でのログインに対応しています。初回ログイン後、無料クレジット($1〜$5 程度)が付与されるため、最初は課金なしで動作確認できます。

②API キーを発行する
ログイン後、右上のアカウントメニューから「API Keys」を開き、「Create Key」ボタンをクリックします。名前(例: ubuntu-test)を入力して作成すると、sk-or-v1-xxxxxxxxx 形式のキーが表示されます。
注意
API キーはページを離れると再表示できません。作成直後にテキストエディタや 1Password などにコピーしておいてください。
③API キーを環境変数に設定する
$ echo $OPENROUTER_API_KEY
sk-or-v1-xxxxxxxxxx
毎回 export するのが面倒なら ~/.bashrc または ~/.profile に追記して永続化します。
$ source ~/.bashrc
Ubuntu 側のセットアップ
①python3-pip をインストールする
Ubuntu 22.04 には Python 3.10.12 がプリインストールされています。pip がまだない場合はインストールします。
Reading package lists… Done
Building dependency tree… Done
Setting up python3-pip (22.0.2+dfsg-1ubuntu0.7) …
$ pip3 –version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
②openai パッケージをインストールする
OpenRouter は OpenAI 互換 API なので、openrouter という専用パッケージは不要です。公式 SDK の openai をそのまま使います。

Collecting openai
Collecting httpx<1,>=0.23.0
Collecting pydantic<3,>=1.9.0
Collecting anyio<5,>=3.5.0
Installing collected packages: typing-extensions, tqdm, sniffio, jiter, idna,
h11, distro, certifi, pydantic-core, httpcore, pydantic, anyio, httpx, openai
Successfully installed openai-2.43.0 httpx-0.28.1 pydantic-2.13.4
$ python3 -c “import openai; print(openai.__version__)”
2.43.0
pip が Successfully installed openai-2.43.0 と表示されれば準備完了です。httpx と pydantic も一緒に入るので追加インストールは不要です。
curl で動作確認する
Python コードを書く前に、まず curl で API の疎通を確認します。OpenRouter の公開エンドポイント /api/v1/models は認証なしで叩けるので、接続チェックに使えます。

{
“data”: [
{
“id”: “google/gemini-3.1-flash-image”,
“name”: “Google: Nano Banana 2 (Gemini 3.1 Flash Image)”,
“context_length”: 131072,
…
},
実際に実行したところ 340 モデルが返ってきました(2026-06-21)。モデルの総数は日々増減するので、最新の件数は上記コマンドで確認してください。
次は API キーを使った実際のチャットリクエストを curl で送ります。
-H “Authorization: Bearer $OPENROUTER_API_KEY” \
-H “Content-Type: application/json” \
-d ‘{
“model”: “google/gemma-4-31b-it:free”,
“messages”: [{“role”: “user”, “content”: “Ubuntuとは何ですか?一行で教えてください”}]
}’
{“id”:”gen-…”,”choices”:[{“message”:{“role”:”assistant”,
“content”:”UbuntuはDebianをベースにしたLinuxディストリビューションです。”
},”finish_reason”:”stop”}]}
モデルには無料の google/gemma-4-31b-it:free を指定しました。レスポンスが返れば接続成功です。
Python コードで使う
①基本的な使い方
Python から使う場合は OpenAI クラスの base_url と api_key を書き換えるだけです。それ以外のメソッド名や引数は OpenAI と同じなので、既存コードの変更量が少ないです。
import os
from openai import OpenAI
client = OpenAI(
base_url=”https://openrouter.ai/api/v1″,
api_key=os.environ[“OPENROUTER_API_KEY”],
)
response = client.chat.completions.create(
model=”google/gemma-4-31b-it:free”,
messages=[{“role”: “user”, “content”: “Ubuntuとは何ですか?一行で教えてください”}],
)
print(response.choices[0].message.content)
UbuntuはDebianをベースにしたLinuxディストリビューションです。
OpenAI SDK をそのまま流用しているため、messages のロール設定や temperature・max_tokens などのパラメータも同じ書き方で動きます。
②モデルを切り替える
OpenRouter の最大のメリットがここです。model の文字列を変えるだけで、別のプロバイダーのLLMに切り替えられます。
from openai import OpenAI
import os
client = OpenAI(
base_url=”https://openrouter.ai/api/v1″,
api_key=os.environ[“OPENROUTER_API_KEY”],
)
MODELS = [
“google/gemma-4-31b-it:free”, # 無料
“nvidia/nemotron-3-ultra-550b-a55b:free”, # 無料・コンテキスト100万
“openai/gpt-4o”, # 有料
“anthropic/claude-fable-5”, # 有料
]
for model in MODELS:
resp = client.chat.completions.create(
model=model,
messages=[{“role”: “user”, “content”: “Hello in one word”}],
)
print(f”{model}: {resp.choices[0].message.content}”)
③ストリーミングで受け取る
長い応答をリアルタイムで表示したい場合は stream=True を追加します。
model=”google/gemma-4-31b-it:free”,
messages=[{“role”: “user”, “content”: “Linuxのファイルシステム構造を教えて”}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end=””, flush=True)
使えるモデルと無料枠
OpenRouter では :free サフィックスがついたモデルが無料で使えます。2026-06-21 時点で 23 モデルが無料対応でした(openrouter.ai/api/v1/models を直接取得して確認)。


無料モデルにはレートリミットがあります(通常 10〜20 req/分)。個人での学習用途なら十分ですが、大量リクエストが必要な場合は有料プランへのアップグレードが必要です。
| モデル種別 | ID 形式 | 課金 | 用途 |
|---|---|---|---|
| 無料モデル | provider/model-name:free |
$0 | 学習・プロトタイプ・テスト |
| 有料モデル | provider/model-name |
per-token 課金 | 本番・高精度が必要な場面 |
無料モデルを試して良ければ、同じ provider/ の有料モデルに切り替えてみる、という進め方が自然です。
よくあるエラーと解決策
401 Unauthorized が返る
OPENROUTER_API_KEY が設定されていないか、空文字になっています。echo $OPENROUTER_API_KEY で値が表示されるか確認してください。
404 No endpoints found が返る
モデルIDのタイポか、そのモデルが削除・変更された可能性があります。/api/v1/models で最新の ID を確認してください。モデル名は大文字小文字まで一致が必要です。
429 Rate Limit が返る
無料モデルのレートリミットに引っかかっています。1分待ってから再試行するか、time.sleep(2) を挟んでリクエスト間隔を空けてください。
注意
無料モデルは :free サフィックスつきのID(例: google/gemma-4-31b-it:free)を指定する必要があります。:free を付けずに google/gemma-4-31b-it と書くと有料モデルが呼ばれ、クレジットが消費されます。
ModuleNotFoundError: No module named ‘openai’
pip でインストールされていないか、venv の外から実行しています。
$ python3 -c “import openai; print(openai.__version__)”
2.43.0
バージョンが表示されれば問題ありません。venv を使っている場合は source venv/bin/activate を忘れないよう注意してください。
まとめ
Ubuntu 22.04 から OpenRouter を使うセットアップは以下の 3 ステップでした。
pip3 install openaiでパッケージをインストールOPENROUTER_API_KEYを環境変数にセットbase_url="https://openrouter.ai/api/v1"に変えてクライアントを作成
実際に試して意外だったのは、コンテキスト長 100 万トークンのモデルが無料で使えることです。nvidia/nemotron-3-ultra-550b-a55b:free はコンテキスト 1,000,000 tokens で、長いドキュメントの要約や複数ファイルの一括処理に向いています。
有料モデルへの切り替えも model= の1行変更だけなので、無料モデルでプロトタイプを作ってから本番に差し替える流れが作りやすいです。
VPS でこのコードを常時動かしたい場合は、ConoHa VPS や Vultr の東京リージョンがレスポンスが安定しています。自分のサーバーを持つ手順は以下の記事を参考にしてください。



コメント