openapi: 3.2.0 info: title: tokenusage.dev public data Resets.atom API version: 1.0.0 description: 'Read-only reset announcements and Nerf Watch scores. No key. Public display requires Data: tokenusage.dev linked to https://tokenusage.dev/resets for resets or https://tokenusage.dev/nerfwatch for scores on the same screen or in the same message. Personal use needs no visible credit. Relays must pass on the credit URL and condition. A lower score on this suite is not proof that a provider changed a model. Response fields may be added.' termsOfService: https://tokenusage.dev/terms contact: name: tokenusage.dev email: support@tokenusage.dev url: https://tokenusage.dev/contact servers: - url: https://tokenusage.dev security: [] tags: - name: Resets.atom paths: /api/resets.atom: description: Atom 1.0 for the same recorded announcements as /api/resets, in the same order. Entry ids and alternate links are source-post URLs. No post text is included. Retain the feed rights statement and each entry's linked credit when relaying Atom. Use GET or HEAD without credentials or custom request headers. Poll no faster than every 15 seconds. Unsupported methods return the documented 405 error. get: operationId: getResetAnnouncementFeed summary: Read the Codex reset announcement Atom feed responses: '200': $ref: '#/components/responses/ResetAtom' '405': $ref: '#/components/responses/ResetMethodNotAllowed' '500': $ref: '#/components/responses/InternalError' tags: - Resets.atom head: operationId: headResetAnnouncementFeed summary: Read Atom response headers responses: '200': $ref: '#/components/responses/ResetHead' '405': $ref: '#/components/responses/HeadError' '500': $ref: '#/components/responses/HeadError' tags: - Resets.atom components: responses: HeadError: description: Error headers with no transmitted body and no CORS headers. headers: Cache-Control: $ref: '#/components/headers/NoStore' X-Robots-Tag: $ref: '#/components/headers/Noindex' ResetAtom: description: Atom 1.0, UTF-8. Feed updated is the greatest returned detectedAt, or generatedAt when empty. Each entry uses postedAt for published and detectedAt for updated. This is a current window without deletion tombstones or a monotonic change cursor. headers: Cache-Control: $ref: '#/components/headers/ResetCache' Access-Control-Allow-Origin: $ref: '#/components/headers/PublicCors' X-Robots-Tag: $ref: '#/components/headers/Noindex' content: application/atom+xml: schema: type: string ResetHead: description: The selected reset path's GET headers, with no transmitted body. Content-Type is application/json for /api/resets and application/atom+xml; charset=utf-8 for /api/resets.atom. headers: Cache-Control: $ref: '#/components/headers/ResetCache' Access-Control-Allow-Origin: $ref: '#/components/headers/PublicCors' X-Robots-Tag: $ref: '#/components/headers/Noindex' ResetMethodNotAllowed: description: Unsupported method on either reset path. No CORS headers are sent. headers: Cache-Control: $ref: '#/components/headers/NoStore' X-Robots-Tag: $ref: '#/components/headers/Noindex' content: application/json: schema: $ref: '#/components/schemas/Error' example: error: method_not_allowed message: GET or HEAD InternalError: description: The read failed. No CORS headers are sent. headers: Cache-Control: $ref: '#/components/headers/NoStore' X-Robots-Tag: $ref: '#/components/headers/Noindex' content: application/json: schema: $ref: '#/components/schemas/Error' example: error: internal message: something went wrong on our side headers: Noindex: schema: type: string const: noindex PublicCors: description: Successful public reads only; no credentialed CORS. schema: type: string const: '*' ResetCache: schema: type: string const: public, max-age=0, s-maxage=15 NoStore: schema: type: string const: no-store schemas: Error: type: object additionalProperties: true required: - error - message properties: error: type: string message: type: string externalDocs: description: Fields, caching and reuse conditions url: https://tokenusage.dev/developers