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

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).

FieldMeaning
announced_atISO UTC timestamp of the announcement post (same value as ts); null for older seeded events with no exact timestamp.
delivered_atISO 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_urlPlain URL crediting where delivered_at came from, or null.
delivery_reported_delaytrue when a delivery delay was reported but not yet confirmed with a delivered_at.
delivery_note_enA 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.

FieldMeaning
certainty"announced" or "hinted" — whether the post states a reset will happen or just suggests one might.
dayThe announced calendar day, YYYY-MM-DD.
scheduled_forExact ISO UTC instant when known, or null when only a day was given.
when_textHuman-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_atThe 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
ToolArgumentsReturns
get_forecastnoneThe 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_resetslimit (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_signalsnoneThe three live signal inputs.
get_statusnoneThe Codex-related OpenAI status snapshot.

Data sources

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.