AI

Codexのレートリミットを(技術者倫理に反さない方法で)取得する

Codex WebAPI

はじめに

みなさ〜〜ん!!!
技術者倫理、ちゃんと守ってますか〜〜〜?

…………。

CodexのレートリミットをアプリとかCLI以外で取得するには、たぶん以下の方法が挙げられると思います:

  • OpenAIの使用量ページを開く
  • Dev ToolsのNetworkを開いて、リクエストの中からレートリミットを取得しているものを探す
  • リクエストヘッダのAuthorizationヘッダをコピーする
  • そして、任意の場所でAPIを叩く

ダメ〜〜〜〜〜! やってることサイゼリヤCLIと変わらんやんけ!!!

というわけで、上記の方法よりも技術者倫理に配慮した方法を紹介します。

技術者倫理に配慮した方法とは?

Codex App Serverというものが存在します。

これはOpenAIが提供するCodex CLIの統合サーバで、

  • VSCodeの拡張機能
  • WEBエディタ
  • CI/CDパイプライン

などなど、複数のクライアントからCodexのエージェント機能を利用できるようにする基盤アプリケーションです。

そして、なんとこのApp Serverは、Codexのレートリミットを取得するAPIを提供しています。 このAPIは、Codex CLIの認証情報を使用して、Codexのレートリミットを取得することができます。

Codex App Serverでレートリミットを取得してみる

Codex App Serverは通信プロトコルとしてJSON-RPC 2.0を採用しており、標準入力・Unix Socket・WebSocket(実験的) を用いて通信できます。

手順としては、

  1. Codex CLIがインストールされている環境下で、Codex App Serverを起動する
  2. イニシャライズコマンドを送信する
  3. レートリミットを取得するコマンドを送信する

です。やってみよう!

① Codex App Serverを起動する

$ codex app-server

で起動します。デフォルトは標準入出力でコマンドをやり取りします。

② イニシャライズコマンドを送信する

最初に、Codex App Serverにイニシャライズコマンドを必ず送信する必要があります。これをしないと、Not Initializedというエラーが返ってきます。

このようなJSONメッセージを送信します:

{
  "method": "initialize",
  "id": 0,
  "params": {
    "clientInfo": {
      "name": "app_name",
      "title": "アプリのタイトル",
      "version": "アプリのバージョン"
    }
  }
}

③ レートリミットを取得するコマンドを送信する

以下のようなリクエストを送信します(IDは連番で指定してください):

{
  "method": "account/rateLimits/read",
  "id": 1
}

すると、以下のようなレスポンスが返ってきます:

{
   "rateLimits":{
      "limitId":"codex",
      "limitName":null,
      "primary":{
         "usedPercent":15,
         "windowDurationMins":300,
         "resetsAt":1700000000
      },
      "secondary":{
         "usedPercent":60,
         "windowDurationMins":10080,
         "resetsAt":1700000000
      },
      "credits":{
         "hasCredits":false,
         "unlimited":false,
         "balance":"0"
      },
      "planType":"plus",
      "rateLimitReachedType":null
   },
   "rateLimitsByLimitId":{
      "codex":{
         ...
      }
   }
}

primarysecondaryは、Codexのレートリミットを表しています。primaryが5時間制限、secondaryが週次制限です。

WebAPIとしてレートリミットを取得できるようにする

このままだとマイコンやブラウザでレートリミットを取得することが難しいので、WebAPIとして何処からでもアクセスできるようにします。

完成したものがこちらになります。 codex-rate-limits-api

Cloudflare Tunnelとかで公開するなり、ローカル内でこっそり使用するなり、いろいろやってみてください。

参考サイト

© 2026 Chimonakiko