Usage limit reset JSON API

Free, no key required, CORS enabled, cached for 5 minutes. Use it in bots, menu-bar widgets, userscripts, or status pages.

Endpoints

Data shape

{
  "schema": 1,
  "updated_at": "2026-09-10T06:36:13Z",
  "products": {
    "codex": {
      "name": "Codex",
      "vendor": "OpenAI",
      "sources": [
        "thsottiaux",
        "OpenAIDevs"
      ],
      "events": [
        {
          "id": "2097752790177370535",
          "date": "2026-09-09",
          "ts": null,
          "type": "reset",
          "scope": "all",
          "source": "thsottiaux",
          "url": "https://x.com/thsottiaux/status/2097752790177370535",
          "summary": "Banked reset compensation for users affected by incomplete reset application in ChatGPT Work and Codex",
          "summary_zh": "\u4e3a ChatGPT Work \u548c Codex \u4e2d\u91cd\u7f6e\u672a\u5b8c\u5168\u751f\u6548\u7684\u53d7\u5f71\u54cd\u7528\u6237\u8865\u53d1\u50a8\u5907\u91cd\u7f6e"
        }
      ]
    },
    "claude": {
      "...": "..."
    }
  }
}

Example

const r = await fetch("https://agentresets.com/api/resets.json").then(r => r.json());
const last = r.products.codex.events[0];
console.log(`Last Codex reset: ${last.date} (${last.scope})`);

Attribution is welcome — link back to agentresets.com. Fair use only, please cache and avoid hammering the endpoint.