Codex の公開リセット情報をツールに接続する:HTTP API・RSS・MCP
公開 HTTP API、RSS、MCP で Codex のリセット告知を取得し、原文、時刻、情報源の健全性を保ちます。標準ライブラリを使った読み取り専用 Python サンプルを掲載しています。API Key は不要で、個人のアカウント利用枠は提供しません。
最短の接続方法を選ぶ
リーダーで読むなら RSS、スクリプトやダッシュボードに接続するなら HTTP API、MCP 対応の AI ツールから問い合わせるならリモート MCP を使います。いずれも既存の公開情報を読み取るもので、アカウントをリセットしたり、個人の残り利用枠を取得したりする機能ではありません。
- HTTP API:最後に更新されたイベント1件 · イベント一覧
- RSS 2.0:公開イベントのフィード
- リモート MCP:
https://www.starshoreai.com/quota-orbit/mcp
HTTP:読み取り専用の Python クエリを1回実行する
次のコードを check_codex_reset.py として保存し、Python 3.10 以降が入った環境で python3 check_codex_reset.py を実行してください。Python 標準ライブラリのみを使用し、登録、API Key、Codex のアカウント認証情報は不要です。既存データを1回読み取るだけで、定期取得や購読は設定しません。
import json
from datetime import datetime, timezone
from urllib.error import HTTPError, URLError
from urllib.request import urlopen
url = 'https://www.starshoreai.com/quota-orbit/api/v1/latest.json'
try:
with urlopen(url, timeout=15) as response:
data = json.load(response)
if not isinstance(data, dict) or data.get('schema_version') != 1:
raise ValueError('Unsupported response schema')
event = data.get('event')
if event is not None and not isinstance(event, dict):
raise ValueError('Invalid event field')
except HTTPError as error:
error.close()
message = 'Wait at least 60 seconds before retrying' if error.code == 429 else 'Retry later'
raise SystemExit(f'HTTP {error.code}: {message}; a failed request does not mean no reset occurred.')
except (URLError, OSError, ValueError) as error:
raise SystemExit(f'Read failed: {error}; reset status cannot be inferred from this failure.')
checked_text = data.get('source_checked_at')
try:
checked = datetime.fromisoformat(checked_text.replace('Z', '+00:00'))
if checked.tzinfo is None:
raise ValueError('Source check time has no timezone')
age = (datetime.now(timezone.utc) - checked).total_seconds()
fresh = data.get('source_healthy') is True and 0 <= age <= 30 * 60
except (AttributeError, TypeError, ValueError, OverflowError):
fresh = False
print('Source checked at: ', checked_text or 'unknown')
print('Source is healthy and fresh' if fresh else 'Source is unhealthy, unknown or stale: historical reference only')
if event is None:
print('No record returned; this does not mean no reset occurred.')
else:
print('Public announcement:')
print(json.dumps(event, ensure_ascii=False, indent=2))
links = event.get('source_urls')
for link in links if isinstance(links, list) else []:
if isinstance(link, str) and link.startswith('https://'):
print('Original post or supporting source: ', link)
print('This is public information, not a check of your personal account quota.')情報源の確認時刻、健全性の判定、公開イベントのフィールドと原文リンクが出力される想定です。latest は最後に更新されたイベントを指し、完了告知とは限りません。event: null は記録が返っていないことを表し、今日リセットされないという意味ではありません。completed も、公開情報で完了が告知されたことだけを表します。
情報源が正常でない、確認時刻が不明、または30分を超えている場合は、過去の記録の参照用に限ります。取得に失敗した場合は古いデータを残して期限切れと明示し、「リセットなし」と解釈してはいけません。
さらに記録が必要なら、ページ分割とキャッシュを使う
イベント一覧のURLから開始し、応答の next をたどり、 null になったら終了します。相対URLは https://www.starshoreai.com/quota-orbit/ を基準に解決します。重複の判定には event_id を使い、revision が変わったら元の記録を更新します。独自のクエリパラメータは現在サポートしていません。
60秒以上の間隔で取得し、キャッシュを使うことを推奨します。ETag、If-None-Match 、304 に対応しています。429 が返ったら少なくとも60秒待ち、待機時間を段階的に延ばしてください。フィールドとエラー処理の詳細:接続ドキュメント。上の単発サンプルは、永続キャッシュや自動再試行を実装していません。
RSS:フィードをリーダーに追加する
購読するURL: https://www.starshoreai.com/quota-orbit/rss.xml を RSS 2.0 対応リーダーに追加してください。正常に取得できれば、公開イベントのタイトル、時刻、状態、原文リンクが表示されます。
フィードは直近20件の公開イベントを提供し、完全な履歴ではありません。修正後も同じ項目の識別子を使います。再通知されるかどうかは、リーダーの更新・通知設定によります。古い項目を取得できても、情報源が現在正常だとは限りません。
MCP:AI の回答に原文リンクと時刻を含める
Streamable HTTP 対応クライアントで、そのクライアントの手順に従ってリモート MCP サービスを追加します。接続先: https://www.starshoreai.com/quota-orbit/mcp。API Key は不要です。
接続後に latest_reset_signal と list_reset_signals の2つの読み取り専用ツールが表示されることを確認し、次のように問い合わせます:
最後に更新された Codex の公開リセット情報を調べ、情報の種類、状態、原文リンク、情報源の確認時刻を示してください。情報源の異常やデータの期限切れを明記し、私個人の利用枠が回復したと推測しないでください。
回答には照合できる情報源とデータの鮮度が必要です。「リセット済み」という結論だけでは不十分です。クライアントがこの通信方式に対応しない場合は、ドキュメントのローカル MCP 接続手順に従って設定してください。通常のWebページのURLを MCP 接続先として使わないでください。
情報源と確認日
以下の公開資料は 2026-10-17 に確認しました。アカウントやクライアントの現在の表示は、それぞれの環境で確認してください。
Quota Orbit は独立したツールで、OpenAI の公式製品ではありません。公開Webページと接続インターフェースは個人の利用枠を読み取らず、個人の利用枠の回復を保証せず、リセット確率も予測しません。