ChatGPTアカウントに、Codexの利用制限をリセットできるチケットが残っていました。
使えば対象の利用枠を戻せるんですが、有効期限つきなんですよね🐧
いちばん避けたいのは、使い忘れたまま期限が切れること。
しかも今回の1枚は、期限が午前4時台。
そのために起きているのも避けたいので、未使用のチケットを確認して、期限の10分前から自動で使う仕組みを作りました。
2026年10月30日03:53:50、最初の1枚の使用に成功。
翌秒には利用状況を取り直し、残り1枚になったことも確認できています。
リセットチケットって何?
ぼくが「リセットチケット」と呼んでいるのは、ChatGPTアカウントにあるCodexの利用制限リセット用の特典です。
今回扱った券の種類は、公式のデータ上では codexRateLimits でした。
手元のアカウントに付与済みの券を使います。
追加クレジットを購入する処理は入れていません。
券があるかどうかは、Codexの利用状況や /usage のメニューから確認できます。
期限の10分前から使うことにした
チケットの期限を取得して、「期限 − 600秒」を実行開始時刻にしています。
たとえば期限が04:03なら、03:53から使用を試す、という流れ。
期限ぎりぎりの1秒前だと、通信が一度失敗しただけで間に合わなくなりそう。
10分あれば、使用前の確認や一時的なエラーへの再試行に時間を残せます。
10分という数字は、ぼくが今回の運用で決めたものです。
使える券を期限近くまで残しておき、最後に失効を防ぐための自動化です。
期限より前に必要になったら、手動で使ってもOK。
監視側で使用済みだと確認できた券は、処理対象から外します。
監視は普通のプログラムで動かす
常時起動しているUbuntuにPythonの監視処理を置き、systemdで動かしています。
モデルに「そろそろ使って」と毎回判断させる構成にはしていません。
券の確認と使用には、Codexの公式App Serverが用意しているアカウント操作を使います。
監視処理では生成AIを呼び出さないので、そのためのモデル推論や従量課金のAPI呼び出しは不要です。
処理の流れはこんな感じです。
- 対象アカウントの未使用チケットと有効期限を取得する。
- 期限10分前までは待つ。
- アカウント・券の種類・未使用状態・時刻をもう一度確認する。
- 対象の1枚を指定して使用する。
- 結果を保存してから、利用状況を取り直す。
待っている券がある間は最大5分おきに確認し、期限10分前の時刻にも起きるようにしています。
直前の再確認は30秒間隔。
期限が取得できない券や、別の種類の特典を推測で使うことはありません。
実装で参照したのは、公式の Codex App Serverのアカウント操作 です。
通信が途切れても、同じ処理を重ねない
自動化で気になったのは、「使用できたけど、返事だけ受け取れなかった」場合です。
失敗だと思って別の券まで使うのは困る。
そこで、使う券のIDと、その処理専用のキーを先にファイルへ保存します。
同じ処理をやり直すときは、同じキーを使うようにしました。
公式の仕組みでいう idempotencyKey です。
成功の返事を受け取ったら、まず使用済みとして記録。
その後の利用状況の読み取りだけが失敗しても、券の使用からやり直さないようにしています。
同時に監視が2本動かないようにすることと、PCの時計が同期できていなければ使用しないことも入れました。
時刻で使う仕組みなので、時計がずれていると前提が崩れます。
APIで使えなかったときはブラウザも試す
通常の経路が失敗した場合に備えて、ログイン済みのOrcaブラウザから使用する予備の経路も用意しました。
こちらは画面にある券のIDと期限を照合してから操作します。
選択前と確定直前の状態を保存して、表示が確認できたときだけ確定。
最後は同じ券の使用履歴と照合する作りです。
ブラウザを動かすPC、Orca、ChatGPTへのログインが必要です。
今回の1枚は通常のAPI経路で使用できたので、ブラウザ経由での実使用はまだ確認していません。
確認済みなのは、確定前までの操作と、過去の使用履歴を読み取れるところまでです。
次に増えたチケットも確認する
今回の券を使い終えたら終了、だと次に付与されたときにまた忘れそう。
そこで、券がない間も1時間ごとの確認を続け、新しい券が見つかったら期限を登録するようにしています。
加えて、毎月1日の09:00に残数・期限・監視設定を点検します。
月次点検は設定を確認する処理で、券を使うのは期限10分前の監視側です。
実際に確認できた結果
- 2026年10月30日03:53:50:最初の1枚を自動使用。
サービスから成功の応答を取得。 - 03:53:51:利用状況を再取得し、使用後の確認まで完了。
- 記事作成時点:残り1枚は待機中。
使用予定は11月7日08:23(日本時間)。
ここで確認したのは、券の消費成功と、その後の状態の読み取りです。
何回分の作業が増えたか、何時間使えるようになったかは測定していません。
PC停止や通信・認証エラーによって期限に間に合わない可能性は残ります。
失敗を使用済みとして扱わず、記録から追えるようにしておきました。
使い忘れによる期限切れを防ぎたいし、そのために深夜まで起きていたくない。
その両方に対応する仕組みをひとつ作れたのが、今回の収穫です🐧
