最終確認 2026-11-12

Codex CLI を API キーの従量課金で動かす

Codex CLI は ~/.codex/config.toml に model provider ブロックを 1 つ追加するだけで、接続先を切り替えられます。base_url を https://api.relayswitch.io/v1 にし、キーを環境変数に入れると、Codex の使い方はそのままで、各ターンが前払い残高からトークン単位で課金されます。

01Codex とは:OpenAI のコマンドライン型コーディングエージェント

Codex CLI は、OpenAI のコマンドライン型コーディングエージェントです。設定には model_provider という項目があり、既定値は openai で、リクエストは OpenAI 自身の API に送られます。この項目は変更できます。config.toml に自分の provider を定義し、接続先のアドレスと、キーを入れた環境変数の名前を書いて、model_provider でそれを指定します。Codex のコマンドや使い方は変わらず、変わるのは請求先だけです。

Codex が使うプロトコルは、OpenAI の Responses API の 1 つだけです。Codex の設定リファレンスには、wire_api が対応する値は responses だけだと書かれています。そのため Codex の接続先は、/v1/chat/completions だけでなく /v1/responses を提供している必要があります。RelaySwitch には両方のルートがあり、Codex は後者を使います。

02config.toml に provider ブロックを書く

下のブロックを、ユーザー設定の ~/.codex/config.toml に書きます。このディレクトリは環境変数 CODEX_HOME で決まり、既定は ~/.codex です。キーそのものはファイルに書きません。

  • model_provider は、テーブル名でブロックを選びます。テーブル名は自分で付けますが、openai、ollama、lmstudio、amazon-bedrock、amazon-bedrock-runtime、gcp は Codex が予約している組み込みの ID で、上書きできません。
  • base_url は /v1 まで含めた https://api.relayswitch.io/v1 です。Codex がその後ろに /responses を付け足します。
  • env_key はキーを入れた環境変数の名前で、キーそのものではありません。キーは環境変数に置くので、設定ファイルはコミットや同期をしても問題ありません。
  • wire_api に書ける値は responses だけで、既定値でもあるため、この行は省略できます。
  • requires_openai_auth の既定値は false で、書く必要はありません。自分で定義した provider は env_key のキーで認証し、OpenAI のアカウントでのログインは使いません。
toml
1# ~/.codex/config.toml
2model = "gpt-6.1-sol"
3model_provider = "relayswitch"
4
5[model_providers.relayswitch]
6name = "RelaySwitch"
7base_url = "https://api.relayswitch.io/v1"
8env_key = "RELAYSWITCH_API_KEY"
9wire_api = "responses"

03キーを環境変数に入れて Codex を起動する

Codex を実行するターミナルでキーを環境変数に入れてから起動します。キーはコンソールで発行した sk-relay- で始まるものです。export の行をシェルの設定ファイルに追加しておくと、新しく開いたターミナルでも有効になります。

一時的に別のモデルを使うときは、codex --model にカタログの ID を渡します。

bash
1export RELAYSWITCH_API_KEY="sk-relay-..."
2codex

04起動前に Responses ルートを curl で確認する

Codex を起動する前に、Codex と同じ形式の最小の Responses リクエストを 1 件送り、キーとアドレスが正しいことを確認します。-i を付けるとステータス行とレスポンスヘッダーが表示され、そのリクエストの ID も確認できます。

200 が返ったら codex を起動して最初の指示を送ります。そのリクエストは数秒でコンソールの利用履歴に表示され、トークン数と料金を確認できます。

bash
1curl -i https://api.relayswitch.io/v1/responses \
2 -H "Authorization: Bearer sk-relay-..." \
3 -H "content-type: application/json" \
4 -d '{"model": "gpt-6.1-sol", "input": "Reply with ok"}'

05Codex で使う GPT モデルの料金

Codex は GPT モデルと Responses API を前提に作られているので、このページの表には GPT モデルを載せています。単位は米ドル / 100 万トークンで、入力、キャッシュ入力、出力は別々に課金され、倍率はありません。

Codex は毎ターン、セッションの内容とツールの出力を送り直します。コーディングエージェントの 1 回の作業では、入力の大半がこの繰り返し送られるコンテキストです。キャッシュにヒットしたトークンはキャッシュ入力の単価で課金され、レスポンスにはその数が報告されます。ヒットするかどうかは、モデルとリクエストの内容によります。

費用を抑える方法は具体的です。日常の修正には単価の低いモデルを使い、難しいレビューやリファクタリングのときだけ高いモデルに切り替えます。1 つの作業が終わったら新しいセッションを始め、コンテキストを伸ばし続けないようにします。Codex 専用のキーを作って米ドルの予算と 1 日の利用上限を設定しておくと、上限に達した時点でそのキーだけが 402 を返して止まり、アカウントの残りの残高には影響しません。料金の仕組みは料金ページにあります。

モデル開発元入力出力コンテキスト
GPT-6.1 Solgpt-6.1-solOpenAI$0.582≈ ¥95$2.91≈ ¥4751,050,000
GPT-6 Lunagpt-6-lunaOpenAI$0.0625≈ ¥10$0.20≈ ¥331,050,000
GPT-6 Solgpt-6-solOpenAI$0.60≈ ¥98$3.00≈ ¥4901,050,000
GPT-6 Astragpt-6-astraOpenAI$3.00≈ ¥490$15.00≈ ¥2,4481,050,000
GPT-5.6 Lunagpt-5.6-lunaOpenAI$0.12≈ ¥20$0.72≈ ¥1181,050,000
GPT-5.6 Solgpt-5.6-solOpenAI$1.20≈ ¥196$3.00≈ ¥4901,050,000
GPT-5.6 Terragpt-5.6-terraOpenAI$1.20≈ ¥196$3.60≈ ¥5881,050,000
GPT-5.5gpt-5.5OpenAI$1.80≈ ¥294$9.00≈ ¥1,4691,050,000
GPT-5.4 Minigpt-5.4-miniOpenAI$0.75≈ ¥122$4.50≈ ¥734400,000
GPT-5.4gpt-5.4OpenAI$1.50≈ ¥245$9.00≈ ¥1,4691,050,000
GPT-5.3-Codexgpt-5.3-codexOpenAI$1.75≈ ¥286$14.00≈ ¥2,285400,000
GPT-4o minigpt-4o-miniOpenAI$0.15≈ ¥24$0.60≈ ¥98128,000
GPT-4ogpt-4oOpenAI$2.50≈ ¥408$10.00≈ ¥1,632128,000
GPT-4.1 Nanogpt-4.1-nanoOpenAI$0.10≈ ¥16$0.40≈ ¥651,048,576
GPT 5.4 Nanogpt-5.4-nanoOpenAI$0.40≈ ¥65$2.50≈ ¥408400,000
GPT 5.6gpt-5.6OpenAI$0.9412≈ ¥154$4.7059≈ ¥7681,050,000
GPT 6.1 Terragpt-6.1-terraOpenAI$0.2941≈ ¥48$1.4706≈ ¥2401,000,000
gpt-oss-120bgpt-oss-120bOpenAI$0.20≈ ¥33$1.80≈ ¥294
gpt-oss-20bgpt-oss-20bOpenAI$0.16≈ ¥26$0.72≈ ¥118

米ドル / 100 万トークン · ≈ は欧州中央銀行の 2026-11-13 のレートで換算した日本円の参考価格で、課金は米ドルです

06うまく動かないとき:profile、/model メニュー、エラーコード

profile は ~/.codex/<name>.config.toml という名前のファイルです。config.toml と異なるキーだけを書き、codex --profile <name> で起動すると上に重ねて適用されます。Codex 0.134.0 以降、config.toml の中の [profiles.<name>] テーブルは読み込まれず、トップレベルの profile = による選択もなくなりました。それ以前に書かれた記事の書き方をそのまま写しても、有効になりません。

自分で定義した provider を使っているとき、Codex の /model メニューに並ぶのは組み込みの OpenAI モデルで、その provider のモデルではありません。項目を選ぶと現在の profile ファイルが書き換えられ、モデルは変わりますが provider は変わりません。書き込まれた ID がカタログにあればそのモデルの料金で動き続け、なければ 404 が返ります。モデルの切り替えには --profile か --model を使ってください。

model_reasoning_effort に指定できる値は、選んだモデルが対応する段階によります。Codex がリクエストごとに送り、ゲートウェイはそのままモデルに渡します。401 から 404 はリクエストがモデルに届く前に返り、429、502、503 は内容が返らないため、いずれも課金されません。

401キーが間違っているか失効しています。または、Codex を起動したターミナルで環境変数 RELAYSWITCH_API_KEY が空です。export し直してから起動します。
402残高が不足しているか、そのキーの予算を使い切っています。チャージするか予算を引き上げると、すぐに再開します。
404モデル ID がカタログにありません。多くは /model メニューが profile を書き換えたことが原因です。model の行を元に戻します。
429キーのレート上限に達しました。retry-after ヘッダーが示す秒数だけ待つか、コンソールでそのキーの 1 分あたりのリクエスト数を引き上げます。
provider ブロックが効かないテーブル名に予約済みの ID を使っているか、model_provider の値がそのテーブルの名前と一致していません。
profile が効かないconfig.toml の [profiles.<name>] テーブルのままになっています。中のキーを個別のファイルに移します。

07Codex と Claude Code を同じキーで使い分ける

Codex は GPT モデル向けのツールです。ターミナルで Claude を使ってコードを書きたい場合は、Claude Code を使います。どちらも同じキー、同じ残高で動くので、ツールごとにアカウントを分ける必要はありません。自分のコードから GPT を呼ぶ場合は OpenAI API の使い方を参照してください。

よくある質問

Codex を API キーで使うには、何を設定しますか?
~/.codex/config.toml に model provider ブロックを追加し、name、base_url(https://api.relayswitch.io/v1)、env_key を書きます。トップレベルの model_provider をそのブロックの名前に、model をカタログの GPT の ID にします。キーを export で環境変数に入れてから codex を起動します。
ChatGPT のアカウントや OpenAI の API キーは必要ですか?
Codex の設定リファレンスによると、自分で定義した provider の requires_openai_auth は既定で false で、リクエストは env_key が指す環境変数のキーで認証されます。アカウントと残高は RelaySwitch 側にあり、キーは sk-relay- で始まります。
base_url に /v1 は付けますか? wire_api には何を書きますか?
base_url は /v1 まで含めた https://api.relayswitch.io/v1 で、Codex がその後ろに /responses を付け足します。wire_api に書ける値は responses だけで、既定値でもあるので省略できます。古い記事にある wire_api = "chat" は、現在は使えません。
Codex の料金を抑えるにはどうすればよいですか?
Codex は毎ターン、セッションとツールの出力を送り直すので、費用は主に入力とキャッシュ入力にかかります。方法は 3 つあります。日常の修正には単価の低いモデルを使い、難しい作業のときだけ高いモデルに切り替えること。作業が終わったら新しいセッションを始めること。Codex 用のキーに米ドルの予算と 1 日の上限を設定し、上限で止まるようにすることです。
モデルが別のものにすり替えられていないか、確認できますか?
確認できます。全モデルに毎日同じチェック用プロンプトを送り、過去の応答と比較した結果を https://api.relayswitch.io/v1/proof で公開しています。リクエストごとの署名付きレシートには、モデル ID、課金トークン数、料金が記載されます。model_reasoning_effort は Codex がリクエストに付けて送り、ゲートウェイはそのままモデルに渡します。
Codex と Claude Code はどう使い分けますか?
Codex は GPT モデルと Responses API を前提にしたツールで、Claude Code は Claude を使うツールです。RelaySwitch ではどちらも同じキー、同じ残高で動くので、作業に合わせて使い分けられます。

provider ブロック 1 つと、環境変数 1 つ

base_url は https://api.relayswitch.io/v1。GPT モデルはカタログの単価どおりに、トークン単位で課金されます。