Repository navigation
Expose detailed rate-limit reset credits in Codex supported surfaces #29618
Description
Summary
Codex currently exposes earned usage-limit reset count and redemption in some supported surfaces, but not the detailed reset-credit rows needed to show expiry dates.
In rust-v0.142.0, app-server exposes:
account/rateLimits/read->rateLimitResetCredits.availableCountaccount/rateLimitResetCredit/consume-> redeem one reset byidempotencyKey
It does not expose per-credit details such as grant time, expiry time, status, reset type, or id.
Please expose detailed rate-limit reset credits through supported Codex surfaces, especially app-server, so Codex CLI/TUI and Codex app can show reset expiry information without relying on private backend endpoints.
Why this matters
Banked Codex resets expire. Users can see that they have N resets available, but supported Codex surfaces do not currently show when each reset expires. That makes it easy to lose a reset unintentionally.
Open-source tools are already using a private backend endpoint directly to fill this gap:
GET /backend-api/wham/rate-limit-reset-credits
That is uncomfortable for users and maintainers because it is not clear whether OpenAI wants clients calling that endpoint directly. It also pushes clients toward reading local auth files and constructing ChatGPT backend headers themselves, instead of letting Codex own auth refresh, account selection, and compatibility.
Some public tools report finding this endpoint in the official openai.chatgpt VS Code extension webview bundle (webview/assets/codex-api-*.js). Others describe it as the internal Codex Desktop endpoint used by the app. So this does not appear to require inventing a new backend capability from scratch; it would expose existing reset-credit detail through supported Codex product/protocol surfaces.
Requested behavior
Expose detailed reset-credit rows in a supported Codex API, either by expanding account/rateLimits/read or adding a dedicated app-server method.
Example shape:
{
"rateLimitResetCredits": {
"availableCount": 2,
"credits": [
{
"id": "RateLimitResetCredit_...",
"resetType": "codex_rate_limits",
"status": "available",
"grantedAt": "2026-06-17T00:00:00Z",
"expiresAt": "2026-07-17T00:00:00Z"
}
]
}
}Product surfaces
This would be useful in:
- Codex CLI/TUI
/usage - Codex app usage/account UI
- app-server clients that want to show expiry warnings or explain reset availability
- local tools that should avoid private backend calls
Notes
This request is not asking clients to depend on private wham endpoints. It is asking for a supported Codex surface so users and local tools do not need to call those endpoints directly.
Activity
github-actions commentedon Jun 23, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
hehee9 commentedon Jun 27, 2026
I took a look at this and have a small local prototype for showing reset-credit expiries in
/status.Proposed approach:
rateLimitResetCredits.availableCountas-is for backward compatibility.rateLimitResetCreditswith an optionalcreditsarray.expiresAtid,status,resetType,grantedAt/status;/usagereset redemption would continue to use the existing consume flow.Example UI:
Fallback behavior:
availableCount == 0: shownone availableN availablewithout synthetic detail rowsFull reset (Monthly)Tests I would include:
Would this be an acceptable direction for a PR, assuming external PRs are currently by invitation?
dezmen3 commentedon Jun 27, 2026
This is actually very needed feature as we can't see expire dates on codex cli while many of users have only access to gpt via codex cli and not always web.
KaixuanLi-sibcb commentedon Jul 6, 2026
Adding a user-facing confirmation from current Codex Desktop behavior.
In the account menu, Codex shows only a count such as
2 available resets, while the read-only backend response already includes per-credit details from:The response includes
available_countandcredits[]entries with fields includingstatus,title,description,profile_user_id,granted_at, andexpires_at. In my case the UI showed two available resets, and the endpoint returned two available credits with distinctgranted_at/expires_atvalues and the titleFull reset (Weekly + 5 hr).This confirms the exact data needed for a better UX already exists server-side, but users currently have to inspect private/local state or call an internal endpoint to find out when resets expire.
Requested behavior:
Weekly + 5 hrThis would make banked resets auditable and prevent users from unintentionally losing expiring reset credits.
[app-server] Include reset-credit details in rate limits (#30395)
MaximeMichaud commentedon Jul 6, 2026
Hello.
I haven't reviewed the PR code, but I agree this feature should be in Codex. The example UI from @hehee9 looks good to me. Right now I had no clear way to see when my reset credits expire; I saw that some people had this in the web app, so I ended up checking through the API to avoid losing my resets. It would be great to have this properly integrated in Codex :)
Thanks.
[codex-cli] Show reset details in redemption picker (#30488)
claude-sonnet-5 (feat): add banked Codex reset activation to usage qu…
[app-server] Include reset-credit details in rate limits (openai#30395)
[codex-cli] Show reset details in redemption picker (openai#30488)