Codex reset API & MCP server
Free, no-key JSON endpoints and a read-only MCP server, built for agents and bots as much as for the web pages.
Endpoints
GET https://codexreset.ai/api/v1/resets.json— every recorded reset event, including a top-levelattributionobject and a per-eventseededflag (see below).GET https://codexreset.ai/api/v1/forecast.json— a relay of whenreset.app's own live 24h/48h/7d probabilities, backtest, and model info (see below — this site's own forecast engine is research-only and is never served here).GET https://codexreset.ai/api/v1/signals.json— the three live signal inputs on their own.GET https://codexreset.ai/api/v1/status.json— the Codex-related OpenAI status snapshot.GET https://codexreset.ai/feed.xml— Atom feed, latest 50 recorded resets.GET https://codexreset.ai/resets.ics— recorded resets as an all-day calendar.POST https://codexreset.ai/mcp— MCP server (JSON-RPC 2.0, Streamable HTTP).
Every endpoint is CORS-enabled (Access-Control-Allow-Origin: *), cached 5 minutes at the edge, and X-Robots-Tag: noindex (the JSON itself isn't meant to be indexed; this page is).
Example: curl
curl -s https://codexreset.ai/api/v1/resets.json | jq '.events[0]'
Example: JavaScript fetch
const r = await fetch("https://codexreset.ai/api/v1/forecast.json").then(r => r.json());
console.log(`24h: ${r.probabilities.raw_24h}, 48h: ${r.probabilities.raw_48h}, model: ${r.model}`);
Reset odds: whenreset.app is the single source
/api/v1/forecast.json and the get_forecast MCP tool are both a live relay of whenreset.app's own forecast API — the shared source this site and its sibling trackers (agentresets.com, claudereset.org, howtok.net) all now display, instead of each running its own model and disagreeing. If whenreset.app can't be reached, both return "available": false rather than falling back to a locally computed number. This site's own cadence-engine backtest is kept for research only (documented at /forecast-method/) and is never included in any API response.
/api/v1/resets.json — delivery fields
Each event carries when it was announced and, separately, when it was actually delivered to accounts — these are often not the same moment (a reset can be announced and then roll out in batches over several hours).
| Field | Meaning |
|---|---|
announced_at | ISO UTC timestamp of the announcement post (same value as ts); null for older seeded events with no exact timestamp. |
delivered_at | ISO UTC timestamp delivery was actually confirmed, only ever filled in with hard evidence. Absent means delivery timing is unknown — never assume it means "delivered immediately." |
delivered_source_url | Plain URL crediting where delivered_at came from, or null. |
delivery_reported_delay | true when a delivery delay was reported but not yet confirmed with a delivered_at. |
delivery_note_en | A short English factual note about delivery, when one exists; null otherwise. |
/api/v1/resets.json — scheduled field
A top-level scheduled object appears when an official reset has been announced or hinted but hasn't landed yet — null the rest of the time (which is most of the time). It disappears again once a matching reset event is recorded, or if the announcement itself is withdrawn.
| Field | Meaning |
|---|---|
certainty | "announced" or "hinted" — whether the post states a reset will happen or just suggests one might. |
day | The announced calendar day, YYYY-MM-DD. |
scheduled_for | Exact ISO UTC instant when known, or null when only a day was given. |
when_text | Human-readable Pacific + Beijing time, e.g. "Oct 2, 10:00 PDT (Pacific) / Oct 3, 01:00 Beijing time" — both time zones are computed with DST awareness, never taken from the post's own wording. |
url, source, announced_at | The announcement post's link, posting account, and its own timestamp. |
This is what the announcement post itself says, not a schedule this site vouches for — see the footer disclaimer.
/api/v1/resets.json — sample
Generated .
{
"schema_version": 1,
"generated_at": "2026-11-08T08:56:46Z",
"source": "https://codexreset.ai",
"attribution": {
"seed_archive": "https://codex-resets.com/",
"note": "Reset history before 2026-09-10 was seeded from the public archive at https://codex-resets.com/."
},
"events": [
{
"id": "2117035794678546764",
"date": "2026-11-01",
"ts": "2026-11-01T23:27:20Z",
"kind": "banked",
"scope": "all",
"summary": "Day 28/ Banked 2/2",
"summary_unavailable": false,
"url": "https://x.com/thsottiaux/status/2117035794678546764",
"seeded": false,
"announced_at": "2026-11-01T23:27:20Z",
"delivered_at": null,
"delivered_source_url": null,
"delivery_reported_delay": false,
"delivery_note_en": null
}
],
"scheduled": null
}
MCP server
A read-only Model Context Protocol server at https://codexreset.ai/mcp — stateless JSON-RPC 2.0 over plain HTTP POST, no API key, no session, no write operations.
claude mcp add --transport http codexreset https://codexreset.ai/mcp
| Tool | Arguments | Returns |
|---|---|---|
get_forecast | none | The current 24h/48h/7d probability, model, and backtest — fetched live from whenreset.app by the Function itself (15s timeout); returns isError with an "unavailable" message if whenreset.app can't be reached, never a fallback number. |
list_resets | limit (optional, default 20), kind (optional: "regular"/"banked") | Recorded reset events, newest first — same delivery fields (announced_at/delivered_at/delivered_source_url/delivery_reported_delay/delivery_note_en) as /api/v1/resets.json. |
get_signals | none | The three live signal inputs. |
get_status | none | The Codex-related OpenAI status snapshot. |
Data sources
- Recorded reset events: public posts about Codex, checked periodically, each with a source link when available.
- Reset history before 2026-09-10: seeded from the public archive at codex-resets.com — every such event has
"seeded": truein/api/v1/resets.json, and the payload's own top-levelattributionobject names the source. - OpenAI's own status feed for Codex-related components.
- GitHub issue activity on
openai/codex.
Attribution & fair use
Free to use, no key required. Attribution appreciated — link back to codexreset.ai if you build something with this. Please cache client-side and stay under roughly 1 request per minute. If you republish pre-2026-09-10 history, please keep the seeded/attribution fields intact and link codex-resets.com the same way this site does.
Frequently asked questions
Do I need an API key?
No — every endpoint here is free, unauthenticated, and CORS-enabled. Please cache client-side and stay under roughly 1 request per minute.
Is there a rate limit?
No hard rate limit is enforced, but please poll at most once a minute — the underlying data doesn't change faster than that.