codex resets

PUBLIC BY DEFAULT

One archive. Your tools.

Use the same public announcement data that powers this tracker. No login or API key.

JSON API

curl 'https://willcodexresets.com/api/resets?limit=10&type=global'

GET /api/resets returns a resets array and full-archive stats. Results are newest first. Optional limit is an integer from 1 to 1000; type accepts global or banked. Omit both for the complete archive. Filters do not change the archive statistics.

{
  "resets": [
    {
      "id": "2117035794678546764",
      "occurredAtUtc": "2026-11-01T23:27:20.000Z",
      "announcementAtUtc": "2026-11-01T23:27:20.000Z",
      "type": "banked",
      "announcementUrl": "https://x.com/thsottiaux/status/2117035794678546764",
      "text": "Day 28/ Banked 2/2",
      "confirmedAtUtc": "2026-11-01T23:27:20.000Z",
      "textI18n": {
        "zh-CN": "第 28 天/ 2/2 存款",
        "zh-TW": "第 28 天/ 2/2 存款",
        "ja": "28 日目/ 2/2 頼む",
        "ko": "28일차/ 2/2 예금"
      },
      "posts": [
        {
          "id": "2117035794678546764",
          "event_id": "2117035794678546764",
          "role": "confirm",
          "posted_at": "2026-11-01T23:27:20.000Z",
          "text_original": "Day 28/ Banked 2/2",
          "text_i18n": {
            "zh-CN": "第 28 天/ 2/2 存款",
            "zh-TW": "第 28 天/ 2/2 存款",
            "ja": "28 日目/ 2/2 頼む",
            "ko": "28일차/ 2/2 예금"
          },
          "is_reply": 0,
          "review_status": "verified"
        }
      ]
    }
  ],
  "forecast": {
    "status": "insufficient",
    "p24": null,
    "p48": null,
    "sampleSize": 8,
    "meanDays": 1.8822511574074074,
    "cv": 0.3073552350714735,
    "confidence": null,
    "scheduledFor": null,
    "latest": "2026-10-28T06:29:38.000Z",
    "total": 66
  },
  "stats": {
    "total": 66,
    "avgIntervalDays": 6.247721866096867,
    "medianInterval30Days": 2.014976851851852,
    "banked": 9,
    "pendingReviewEvents": 70,
    "longestWaitDays": 67.74240740740741,
    "latest": "2026-10-28T06:29:38.000Z"
  },
  "scheduled": null
}

This server-rendered example includes the latest record and current full-archive statistics from the same data source as the endpoint.

FieldMeaning
idStable archive identifier; use it to deduplicate.
occurredAtUtcRecorded event time, ISO 8601 in UTC. It may differ from publication time.
announcementAtUtcPublication time of the source announcement, ISO 8601 in UTC.
typeGlobal announcement or banked reset credit announcement.
announcementUrlOriginal public X source; check its scope before acting.
textFull source text with original line breaks.
statsFull archive count, mean interval, longest interval, and latest recorded UTC time.
forecastMemoryless estimate using the latest eight completed regular-event gaps. Includes status, p24, p48, sampleSize, meanDays, cv and confidence. Probabilities are null in special states.

Forecast and timeline

GET /api/timeline returns the same event data and summary as /api/resets. GET /api/forecast returns the forecast and the same full-archive statistics. Counts include automatically grouped needs_review events until review is complete. Banked resets have a separate count and never enter gap samples.

stats.medianInterval30Days uses completed regular-event gaps within the last 30 days. The forecast uses up to eight latest completed gaps, λ = 1 / meanDays, p24 = 1 − exp(−λ), p48 = 1 − exp(−2λ). Its UTC same-day confirmation, timed official preannouncement, fewer than five gaps, and a wait greater than three sample means suppress probabilities. Confidence is medium if CV < 0.5 and otherwise low. Waiting longer does not raise the probability.

Sitewide spinner counts

curl 'https://willcodexresets.com/api/spin'

GET /api/spin returns anonymous aggregate attempt counts, not unique people. total is the cumulative number of completed spins, hits counts three full-reset symbols, today counts spins received on the current UTC date, and updatedAt is the UTC timestamp of the latest accepted update. Daily counts retain the latest 30 UTC dates. Responses use Cache-Control: public, max-age=60. Homepage and standalone-page numbers are server rendered with five-minute revalidation; the browser does not poll this endpoint. Browser access is same-origin.

Team webhook subscriptions

POST /api/alerts/webhook accepts {"url":"https://…","locale":"zh-CN"}. Only exact HTTPS bot endpoints on open.feishu.cn, qyapi.weixin.qq.com and oapi.dingtalk.com are accepted. A successful test message activates the subscription. The endpoint permits five requests per visitor per hour. DELETE /api/alerts/webhook consumes the unsubscribe token from a delivered link; repeat deletion is harmless. Only confirmed events trigger notifications.

Remote MCP

The endpoint implements Streamable HTTP using the official MCP TypeScript SDK. Add this URL to a client that supports remote MCP servers:

https://willcodexresets.com/mcp

For clients with a mcpServers configuration:

{
  "mcpServers": {
    "codex resets": {
      "url": "https://willcodexresets.com/mcp"
    }
  }
}

Client configuration formats vary. In a settings interface, choose a remote HTTP server and paste the endpoint. The server exposes three read-only tools:

  • get_latest_reset: the most recent recorded announcement.
  • list_resets: an optional limit and type filter.
  • get_reset_stats: full-archive statistics.

Tools cannot view your personal usage, sign in to OpenAI, spend reset credits, or change account limits. HTTP POST handles MCP messages; OPTIONS supports cross-origin clients. Standalone GET event streams are not required by this stateless server.

Fair use and freshness

Archive JSON APIs and MCP share a budget of 60 requests per IP per minute. An exhausted budget returns HTTP 429; respect Retry-After. Cache results locally and avoid polling more than once a minute. Archive JSON responses permit all CORS origins and have a 60-second shared-cache lifetime. New reset ingestion triggers page and data invalidation; deployment-specific edge purge must be configured when an external CDN is used.

Public announcement intervals are not personal account reset timers.Imported event dates and global/banked classifications remain marked for editorial review. Source authorship and full text are verified separately. Read the source announcement when quoting a record.

RSS and AI discovery

Subscribe to RSS for published events. llms.txt lists the available data and guide URLs. Attribution with a link to the original archive and the X announcement helps readers inspect the evidence.