tokenusage-dev Nerfwatch API

The Nerfwatch API from tokenusage-dev — 1 operation(s) for nerfwatch.

Operations 2

GET /api/nerfwatch Read Nerf Watch scores and history #
HEAD /api/nerfwatch Read Nerf Watch response headers #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tokenusage-dev:tokenusage-dev-nerfwatch-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tokenusage-dev-nerfwatch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: tokenusage.dev public data Nerfwatch 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: Nerfwatch
paths:
  /api/nerfwatch:
    description: Each model's latest score, previous run, changes, baseline and history, ordered by provider, name and model id. Missing days are missing, not zero. Comparisons use one suite version. A lower score is a lower score on this suite, not proof that a provider changed a model. Use GET or HEAD without credentials or custom request headers. Poll no faster than every 5 minutes. evidenceAvailable and private evidence endpoints are outside this stable reuse contract. Unsupported methods return the documented 405 error.
    get:
      operationId: getNerfWatchScores
      summary: Read Nerf Watch scores and history
      responses:
        '200':
          $ref: '#/components/responses/NerfwatchJson'
        '405':
          $ref: '#/components/responses/NerfwatchMethodNotAllowed'
        '500':
          $ref: '#/components/responses/InternalError'
      tags:
      - Nerfwatch
    head:
      operationId: headNerfWatchScores
      summary: Read Nerf Watch response headers
      responses:
        '200':
          $ref: '#/components/responses/NerfwatchHead'
        '405':
          $ref: '#/components/responses/HeadError'
        '500':
          $ref: '#/components/responses/HeadError'
      tags:
      - Nerfwatch
components:
  schemas:
    NerfwatchModel:
      type: object
      additionalProperties: true
      required:
      - model
      - name
      - provider
      - latest
      - previous
      - change
      - baseline
      - baselineRuns
      - changeVsBaseline
      - trend
      - history
      properties:
        model:
          type: string
        name:
          type: string
        provider:
          type: string
        latest:
          description: Newest run, or null.
          anyOf:
          - $ref: '#/components/schemas/NerfwatchPoint'
          - type: 'null'
        previous:
          description: Run before the latest, whatever its day, or null.
          anyOf:
          - $ref: '#/components/schemas/NerfwatchPoint'
          - type: 'null'
        change:
          type:
          - number
          - 'null'
          minimum: -100
          maximum: 100
          description: Latest minus previous, in points, rounded to two decimals; null without a previous run on the same suite version.
        baseline:
          type:
          - number
          - 'null'
          minimum: 0
          maximum: 100
          description: Mean of same-suite scores in the baseline window, rounded to two decimals; null with too few runs.
        baselineRuns:
          type: integer
          minimum: 0
          description: Number of same-suite runs in the baseline window, even when too few for a baseline.
        changeVsBaseline:
          type:
          - number
          - 'null'
          minimum: -100
          maximum: 100
          description: Latest minus baseline, in points, rounded to two decimals; null without a baseline.
        trend:
          type:
          - string
          - 'null'
          enum:
          - down
          - flat
          - up
          - null
          description: Direction against the baseline using flatPoints; null without a baseline.
        history:
          type: array
          description: Oldest first. Days without a run are missing, not zero.
          items:
            $ref: '#/components/schemas/NerfwatchPoint'
    Error:
      type: object
      additionalProperties: true
      required:
      - error
      - message
      properties:
        error:
          type: string
        message:
          type: string
    NerfwatchPoint:
      type: object
      additionalProperties: true
      required:
      - day
      - score
      - suiteVersion
      properties:
        day:
          type: string
          format: date
          description: UTC day.
        score:
          type: number
          minimum: 0
          maximum: 100
          description: Percent score on this suite, rounded to two decimals.
        suiteVersion:
          type: string
          description: Comparisons are made only within one suite version.
    NerfwatchResponse:
      type: object
      additionalProperties: true
      required:
      - generatedAt
      - dataUpdatedAt
      - historyDays
      - baselineDays
      - minBaselineRuns
      - flatPoints
      - models
      properties:
        generatedAt:
          type: string
          format: date-time
          description: Response generation time.
        dataUpdatedAt:
          type:
          - string
          - 'null'
          format: date-time
          description: When the newest retained run was stored; null without runs.
        historyDays:
          type: integer
          minimum: 1
          examples:
          - 366
          description: History retention bound per model.
        baselineDays:
          type: integer
          minimum: 1
          examples:
          - 7
          description: UTC-day window before the latest run used for its baseline.
        minBaselineRuns:
          type: integer
          minimum: 1
          examples:
          - 3
          description: Minimum same-suite runs needed for a baseline.
        flatPoints:
          type: number
          minimum: 0
          examples:
          - 2
          description: Absolute change versus baseline at or below this value is flat.
        models:
          type: array
          description: Ordered by provider, name and model id; empty before the first run.
          items:
            $ref: '#/components/schemas/NerfwatchModel'
  responses:
    NerfwatchMethodNotAllowed:
      description: Unsupported method. The existing method message remains GET. 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
    NerfwatchHead:
      description: GET headers, with no transmitted body.
      headers:
        Cache-Control:
          $ref: '#/components/headers/NerfwatchCache'
        Access-Control-Allow-Origin:
          $ref: '#/components/headers/PublicCors'
        X-Robots-Tag:
          $ref: '#/components/headers/Noindex'
    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'
    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
    NerfwatchJson:
      description: Public scores and metadata. Additional response fields are the site's own interface unless documented as stable.
      headers:
        Cache-Control:
          $ref: '#/components/headers/NerfwatchCache'
        Access-Control-Allow-Origin:
          $ref: '#/components/headers/PublicCors'
        X-Robots-Tag:
          $ref: '#/components/headers/Noindex'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NerfwatchResponse'
  headers:
    Noindex:
      schema:
        type: string
        const: noindex
    PublicCors:
      description: Successful public reads only; no credentialed CORS.
      schema:
        type: string
        const: '*'
    NerfwatchCache:
      schema:
        type: string
        const: public, max-age=60, s-maxage=300
    NoStore:
      schema:
        type: string
        const: no-store
externalDocs:
  description: Fields, caching and reuse conditions
  url: https://tokenusage.dev/developers