Data API

Public Data API Free, keyed, versioned

Live AI model benchmark data as JSON: rankings, the global intelligence index, degradation alerts, drift signatures and provider reliability.

GET /api/v1/modelsasl_ key
curl "https://aistupidlevel.info/api/v1/models?period=24h" \
  -H "X-API-Key: $ASL_DATA_KEY"
{
  "success": true,
  "period": "24h",
  "sort_by": "combined",
  "data": [
    { "name": "gpt-5.6-sol", "currentScore": 75,
      "confidenceLower": 76.2, "confidenceUpper": 84.6, … }
  ]
}

01

Why this needs a key now

These endpoints used to be open, and plenty of people built genuinely good things on them — status bars, dashboards, monitoring bots. That open access also got used to re-publish the rankings wholesale as other people's leaderboards, with no attribution and no way for us to tell one from the other.

A key fixes exactly that: it costs nothing, takes about thirty seconds, and turns an anonymous user-agent string into something we can rate-limit, contact and — if it turns out to be a mirror rather than a client — revoke. If you were using the old open endpoints, create a key and add one header. Nothing else changes.

02

Authentication

Bearer token

Send your key in the Authorization header. An X-API-Key header works too if a bearer token is awkward in your client.

Requestcurl
curl -H "Authorization: Bearer asl_live_your_key_here" \
  "https://aistupidlevel.info/api/v1/models?period=24h&sortBy=combined"
Base URL
https://aistupidlevel.info/api/v1

03

Endpoints

  • GET/api/v1/models

    Current rankings with scores, trends and confidence intervals.

    periodsortBy
  • GET/api/v1/models/:id

    Detail for one model, including per-axis breakdown.

    —
  • GET/api/v1/models/:id/history

    Score time-series for one model.

    period
  • GET/api/v1/index

    Global intelligence index — the aggregate score across all tracked models, with history.

    —
  • GET/api/v1/alerts

    Active performance alerts for models scoring below their baseline.

    —
  • GET/api/v1/incidents

    Recorded degradation incidents.

    periodlimit
  • GET/api/v1/providers

    Provider-level availability and status.

    —
  • GET/api/v1/analytics/degradations

    Models currently degrading, with magnitude and direction.

    period
  • GET/api/v1/analytics/recommendations

    Which model to use right now, by task type.

    period
  • GET/api/v1/analytics/provider-reliability

    Reliability scoring per provider.

    period
  • GET/api/v1/analytics/transparency

    Full scoring transparency data.

    period
  • GET/api/v1/drift/:id

    Drift signature for one model: Page-Hinkley statistic, regime and per-axis trends.

    —
  • GET/api/v1/me

    Your key, its tier, and your current quota.

    —

04

Query parameters

period
One of latest, 24h, 7d, 1m. The latest run is part of the paid plans: a paid key defaults to latest, while a free key defaults to 24h and gets a 403 with latest_requires_plan when it asks for latest. On a free key, /models/:id leaves out latestScore.
sortBy
One of combined, reasoning, speed, price, coding, 7axis, tooling. Defaults to combined.

05

Response shape

Every successful response uses the same envelope.

200 OKapplication/json
{
  "success": true,
  "version": "1.0.0",
  "generated_at": "2026-09-04T07:48:00.000Z",
  "license": "Attribution required — cite aistupidlevel.info as the source.",
  "period": "24h",
  "sort_by": "combined",
  "count": 152,
  "data": [
    {
      "id": "275",
      "name": "gpt-5.6-sol",
      "provider": "openai",
      "currentScore": 75,
      "trend": "up",
      "status": "good",
      "confidenceLower": 76.2,
      "confidenceUpper": 84.6,
      "lastUpdated": "2026-09-04T06:54:01.041Z"
    }
  ]
}

06

Rate limits

TierPer dayPer minuteHow to get it
Free101Sign up and create a key
Pro10,00060Included with Pro
Developer25,000120Included with Developer
Teams100,000300Included with Teams
Enterprise250,0001,000By arrangement — see below

Free is an evaluation tier. Ten calls a day is enough to wire a client up and see real data come back — it is not enough to poll on a schedule. Anything that refreshes by itself needs Pro.

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. The daily quota resets at 00:00 UTC. Over quota returns 429 with a JSON body explaining which limit you hit.

Scores update roughly hourly, so cache on your side rather than polling. One request an hour is plenty to stay current, and it keeps a Pro key nowhere near its ceiling.

07

Enterprise access

Enterprise is not sold through a checkout — there is nothing to buy on this page. If you need volume beyond Pro, a commercial redistribution licence, or a guarantee we will not change something under you, get in touch and we will sort out limits that fit what you are actually building.

08

Errors

StatusCodeMeaning
400invalid_model_idThe model id in the path is malformed.
401api_key_requiredNo key was sent.
401invalid_api_keyThe key is unknown or has been revoked.
404model_not_foundNo such model.
429quota_exceededDaily quota spent. Resets at 00:00 UTC.

09

Terms of use

Attribution is required. Anywhere you display this data, cite aistupidlevel.info as the source with a link.

Do not republish the rankings as your own leaderboard, and do not resell the data. Use one key per application rather than sharing a key across products. Keys that behave like a mirror rather than a client can be revoked without notice.

Building something that needs to run on a schedule? That is what Pro is for. Building something bigger than Pro, or that redistributes the data? Talk to us first — we would much rather agree terms with you than find out from the logs.

Create your free key

It costs nothing and takes about thirty seconds. Then add one header.