OpenAI を呼び出しているコード、フレームワーク、アプリなら、そのまま Lovely Router も呼び出せます。ベース URL を https://lovelyrouter.com/v1 に設定し、OpenAI API キーの代わりに Lovely Router のキーを使うだけです。GPT モデルは Chat Completions と、Codex CLI が使う Responses API で提供しています。Claude や Gemini を含むほかのすべてのテキストモデルも Chat Completions に応答するため、OpenAI 互換のクライアント 1 つで、1 つのプリペイド残高から 3 社すべてのモデルを使えます。
AI エージェントに任せる
このプロンプトを Claude Code、Cursor、Codex などのコーディングエージェントに貼り付けてください。ドキュメントの場所と API キーの使い方をエージェントに伝えます。
Integrate models from Lovely Router into this project through the OpenAI Chat Completions and Responses APIs. - Docs (read first): https://lovelyrouter.com/docs/models/openai.md - Use the official OpenAI SDK with base URL https://lovelyrouter.com/v1 (or set OPENAI_BASE_URL=https://lovelyrouter.com/v1). Endpoints: POST /v1/chat/completions and POST /v1/responses, unchanged from OpenAI. - GET https://lovelyrouter.com/v1/models lists every model id with its price; pick one there, do not guess ids. - Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys. - Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large. - Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt. My task: <describe what you want to build or get>
仕組み
キーを取得する
サインアップして $5 からチャージし、API キーでキーを作成します。同じキーで、すべてのモデル、データツール、ブラウザエージェントを呼び出せます。
2 つの変数を設定する
OpenAI の SDK と、それをベースにした多くのアプリは
OPENAI_BASE_URLとOPENAI_API_KEYを読み取ります。それぞれhttps://lovelyrouter.com/v1とあなたのキーに設定してください。API ホストを入力させ、/v1を自動で付け足すアプリの場合はhttps://lovelyrouter.comを入力します。GPT モデルを呼び出す
リクエストボディは変更されずに渡されるため、どのパラメーターについても OpenAI の API リファレンスがそのまま当てはまります。
Shellcurl https://lovelyrouter.com/v1/chat/completions \ -H "Authorization: Bearer $LOVELY_API_KEY" \ -H "content-type: application/json" \ -d '{ "model": "gpt-6.1-sol", "messages": [ {"role": "system", "content": "Answer in one sentence."}, {"role": "user", "content": "What does a load balancer do?"} ] }'
GPT API の料金(リアルタイム)
| モデル | コンテキスト | 入力 | 出力 | キャッシュ読み取り |
|---|---|---|---|---|
| GPT-6 Astra gpt-6-astra | 1.05M | $10.00 | $50.00 | $1.00 |
| GPT-6.1 Sol gpt-6.1-sol | 1.05M | $2.00 | $10.00 | $0.10 |
| GPT-6 Sol gpt-6-sol | 1.05M | $2.00 | $10.00 | $0.20 |
| GPT-6.1 Terra gpt-6.1-terra | 1.05M | $1.00 | $5.00 | $0.05 |
| GPT-5.6 Sol gpt-5.6-sol | 400K | $2.00 | $10.00 | $0.20 |
| GPT-5.6 Terra gpt-5.6-terra | 400K | $2.00 | $12.00 | $0.20 |
| GPT-5.6 Luna gpt-5.6-luna | 400K | $0.20 | $1.20 | $0.02 |
100 万トークンあたりの米ドル価格(カタログからリアルタイム表示)。
料金は 100 万トークンあたりの米ドル建てで、カタログからそのまま表示しています。client.models.list() でも同じ一覧を価格付きで取得でき、キーは不要です。GPT モデルは gpt-value チャネルグループで提供しています。現在の提供状況はモデルマーケットプレイスで、チャネルグループごとの 1 時間単位の稼働状況はステータスで確認できます。
3 社のモデルを 1 つの OpenAI 互換 API で
| ファミリー | ID の例 | ベンダー固有のオプションが最も確実に使える API |
|---|---|---|
| GPT | gpt-6.1-sol、gpt-6-astra、gpt-6.1-terra、gpt-5.6-terra、gpt-5.6-luna | Chat Completions または Responses(どちらもネイティブ) |
| Claude | claude-sonnet-5.5、claude-opus-5.5 | cache_control や思考の設定には Anthropic Messages |
| Gemini | gemini-3.1-pro、gemini-3-flash | thinkingConfig には Gemini API |
ベンダーを切り替えるには model フィールドを変えるだけです。ネイティブ以外の形式で呼び出されたモデルは、リクエストを変換するチャネルが処理します。そのため、1 社だけが定義しているオプションが確実に機能するのは、そのベンダー自身の API で呼び出した場合に限られます。画像モデルは Images API に応答します。画像生成を参照してください。
Responses API と Codex CLI
GPT モデルは、Codex CLI と Agents SDK が使う POST /v1/responses でも提供しています。ベース URL もキーも同じで、client.responses.create() もそのまま動きます。Codex には Lovely Router をモデルプロバイダーとして追加します。
model = "gpt-6.1-sol"
model_provider = "lovely"
[model_providers.lovely]
name = "Lovely Router"
base_url = "https://lovelyrouter.com/v1"
env_key = "LOVELY_API_KEY"
wire_api = "responses"Codex はセッションごとに prompt_cache_key を送るため、1 つのセッションのすべてのターンが、そのプロンプトキャッシュを持つチャネルにとどまります。ここでの Responses API について、知っておくべき点が 2 つあります。
- 会話全体を送ってください。 レスポンスは保存されません。
/v1/responses/{id}へのGET、DELETE、キャンセルは404を返し、previous_response_idは会話が 1 つのチャネルにとどまっている間しか機能しません。Codex と同じように、"store": falseを付けてinputに履歴全体を送ってください。 - GPT モデルのみ対応しています。 ほかのモデルは
not served in responses formatとともに404を返します。Chat Completions かそのモデル自身の API で呼び出してください。
Chat Completions の詳細
ゲートウェイはすべてのストリーミングリクエストに stream_options.include_usage: true を追加します。そのため、data: [DONE] の直前の最後のチャンクは choices 配列が空で、呼び出しの usage を含みます。差分を読む前に、choices が空でないことを確認してください。
tools、tool_choice、parallel_tool_calls、response_format は変更されずに渡されます。
GPT-5 と GPT-6 のモデルは回答の前に推論します。reasoning_effort を設定し、出力全体の上限は推論トークンを含む max_completion_tokens で指定します。推論の内容自体は返されません。
GPT モデルは長いプレフィックスを自動でキャッシュします。usage.prompt_tokens_details.cached_tokens はキャッシュ読み取りの価格で課金されます。会話ごとに固定の prompt_cache_key を送るとヒット率が上がり、会話が 1 つのチャネルにとどまります。
埋め込み、音声、画像のバリエーション、レガシーの Completions、Assistants、ファイル、バッチ、ファインチューニング、モデレーションは提供していません。これらのパスは 404 を返します。
レシピ
OPENAI_BASE_URL と OPENAI_API_KEY を変更して再起動し、最初の呼び出しをログで確認します。
上の設定を使い、LOVELY_API_KEY を export して codex を実行します。利用上限付きのキーなら、長いセッションでも予算内に収まります。
同じクライアントで gpt-6.1-sol、claude-sonnet-5.5、gemini-3.1-pro を順に呼び出し、回答と usage を比べます。
ゲートウェイはすでにチャネルをまたいで再試行しているため、429 や 502 は問題が複数回の試行を超えて続いたことを意味します。クライアントに max_retries=5 を設定し、SDK が 429 と 5xx をバックオフ付きでさらに数回再試行するようにします。
同じクライアントで gpt-image-2 を指定して client.images.generate() を呼び出せます。料金は 1 枚あたりの定額です。
支払う料金
GPT モデルはトークン単位で課金されます。キャッシュされない入力、キャッシュ読み取りの価格で課金されるキャッシュ済みの入力、推論トークンを含む出力のそれぞれに、モデルの 100 万トークンあたりの価格がかかります。GPT モデルにはキャッシュ書き込みの料金は別途かかりません。現在はすべてのチャネルグループが定価で課金するため、各 GPT モデルの料金は OpenAI の定価どおりです。請求額はモデルが報告する usage から計算され、数秒以内にプリペイド残高から差し引かれます。
一度チャージすれば、すべてのプロダクトで使えます。サブスクリプションはありません。モデルに届く前に拒否されたリクエストや、ゲートウェイが別の場所で再試行した試行には課金されません。このキーで使えるほかのサービスについては料金を参照してください。
よくある質問
OpenAI 互換の API ですか?+
はい。Lovely Router は https://lovelyrouter.com/v1 で、Chat Completions、Responses API、Images API を OpenAI の形式で提供しています。公式の OpenAI SDK は、ベース URL とキーを変えるだけで動きます。
Codex CLI は Lovely Router で使えますか?+
はい。Codex CLI の設定ファイル ~/.codex/config.toml で、wire_api = "responses" と GPT モデルを指定して Lovely Router をモデルプロバイダーとして追加してください。現在の Codex は wire_api = "chat" を受け付けないため、この設定を使っている古い構成は変更が必要です。
OpenAI SDK で Claude や Gemini を呼び出せますか?+
はい。現在、GET /v1/models にあるすべてのテキストモデルが Chat Completions に対応しています。cache_control や thinkingConfig のように Claude や Gemini だけのオプションを使う場合は、同じキーでそれぞれのネイティブ API を使ってください。
埋め込みや音声は使えますか?+
いいえ。埋め込み、音声、画像のバリエーション、Assistants、ファイル、バッチ、ファインチューニング、モデレーションは 404 を返します。提供しているのは Chat Completions、Responses、画像の生成と編集です。
推論トークンはどのように課金されますか?+
推論トークンは usage.completion_tokens に含まれ、出力の料金で課金されます。max_completion_tokens は出力と推論の合計の上限です。
すべてのパラメーターとヘッダーは OpenAI ガイドを参照してください。失敗するチャネルに対してフェイルオーバーがどう動くかは、レート制限とフェイルオーバーで確認できます。