Free data API

Free AI model API — every LLM, as JSON.

The catalog behind this site is a public feed. 258 models across 12 providers — prices, context windows, lifecycle status and retirement dates — read from official provider documentation and refreshed daily. No key, no signup, no rate limit. CORS is open, so you can call it straight from a browser.

258
models tracked
258/258
carry a source URL
19 Aug 2026
last refreshed

Endpoints

EndpointReturnsSize
GET /api/models.jsonThe full catalog — every model, all fields.258 models
GET /api/deprecations.jsonLifecycle only — every deprecation and retirement a provider has declared, with its stated replacement. Chronological by retirement date, so it includes models already gone.117 models
GET /api/openapi.jsonOpenAPI 3.1 spec — feed this to any tool that speaks OpenAPI and it can discover the API automatically.spec

Try it

# every model, as JSON
curl -s https://aimodelwatch.dev/api/models.json

# what's still to come — the feed is the full record, so filter out the dead
curl -s https://aimodelwatch.dev/api/deprecations.json \
  | jq --arg today "$(date +%F)" \
       '.models[] | select(.retires_on > $today) | {name, retires_on, replacement}'

# is the model I ship on still GA?
curl -s https://aimodelwatch.dev/api/models.json \
  | jq '.models[] | select(.api_string=="claude-fable-5") | .status'

Response shape (v2)

{
  "version": 2,
  "updated": "2026-08-19",
  "count": 258,
  "_meta": {
    "source": "AI Model Watch",
    "url": "https://aimodelwatch.dev",
    "api_docs": "https://aimodelwatch.dev/api",
    "openapi": "https://aimodelwatch.dev/api/openapi.json",
    "feed_updated": "2026-08-19",
    "license": "MIT",
    "citation": "Data by AI Model Watch — https://aimodelwatch.dev",
    "providers": [ /* every provider in the catalog */ ],
    "methodology": "Compiled from official provider documentation…"
  },
  "models": [ /* … */ ]
}

Model fields

FieldTypeMeaning
idstringStable identifier used in our URLs.
namestringHuman-readable model name.
providerstringAnthropic, OpenAI, Google, Mistral, …
statusenumga · preview · beta · deprecated · retired
modalitystring[]text, image, vision, audio, video
context_windownumber|nullMax input tokens.
max_output_tokensnumber|nullMax tokens the model can emit.
price_input_per_mtoknumber|nullUSD per 1,000,000 input tokens.
price_output_per_mtoknumber|nullUSD per 1,000,000 output tokens.
price_cached_input_per_mtoknumber|nullUSD per 1M cached input tokens.
price_per_1k_searchesnumber|nullUSD per 1,000 search units — rerank models bill per query (one query + up to ~100 documents), not per token. null for everything else.
releaseddate|nullISO date the model became available.
deprecated_ondate|nullISO date the provider declared it deprecated.
retires_ondate|nullISO date the endpoint stops answering.
replacementstring|nullProvider's stated migration target.
api_stringstring|nullThe exact string you pass to the API.
open_weightbooleanWhether weights are downloadable.
embedding_dimensionsnumber|nullOutput vector size for embedding models; null for non-embedding models.
source_urlstringThe official provider page this row was read from.

A null means the provider does not publish that number — never a guess. Prices are USD per 1,000,000 tokens.

Freshness & caching

The feed is rebuilt and redeployed daily. What that means for a program polling it:

SignalValueWhat it means
updated2026-08-19Top-level field: the date the catalog itself last changed or was re-verified against provider docs — not the date this response was generated. A build check fails if a data edit ships without bumping it, so it is the field to diff between polls.
Cache-Controlmax-age=3600Any cache — your HTTP client, a proxy, the CDN edge — may serve a copy up to one hour old. Append a cache-buster (?cb=$(date +%s)) when you need the origin's current copy, e.g. right after we announce a change.
ETagstrongConditional requests are supported. Send the previous ETag back as If-None-Match and an unchanged feed answers 304 with an empty body instead of the full payload.
Content-EncodinggzipThe full catalog is ~230 KB raw, ~31 KB gzipped. Ask for it — every HTTP client does by default.
# poll politely: cache the ETag, pay for the body only when it changes
curl -s -D- -o models.json \
  -H "If-None-Match: $(cat etag.txt 2>/dev/null)" \
  https://aimodelwatch.dev/api/models.json

# has the catalog itself moved since you last looked?
curl -s "https://aimodelwatch.dev/api/models.json?cb=$(date +%s)" | jq -r .updated

Hourly is more than enough — the catalog is refreshed once a day, so anything faster than that returns the same bytes. There is no rate limit and no key; the cache window exists so polling you doesn't cost you a full download.

MCP server

If your agent speaks MCP, install the AI Model Watch server and query the catalog directly from Claude, Cursor, Windsurf or any MCP-capable tool — no HTTP needed.

# install globally or run on demand
npx @aimodelwatch/mcp

Add it to your MCP config:

{
  "mcpServers": {
    "aimodelwatch": {
      "command": "npx",
      "args": ["-y", "@aimodelwatch/mcp"]
    }
  }
}

Seven tools: list_models, get_model,search_models, compare_models,cheapest_models, list_deprecations,check_model_status. Data is fetched from the public API and cached for 1 hour. Full docs on npm.

OpenAPI spec

The API publishes an OpenAPI 3.1 spec. Point any tool that speaks OpenAPI at https://aimodelwatch.dev/api/openapi.json and it will discover endpoints, field types and enums automatically.

What we promise

Sourced

Every row carries the official provider page it was read from. We record what the provider states — we never infer a price or a lifecycle change it hasn't declared.

Stable

version: 2 fields won't be removed or retyped without a new version. New fields may be added — parse defensively.

Free

MIT, same as the open dataset. Use it in products, research, or agents — commercially too. Attribution is appreciated, not required.

Wiring this into a build? check-models is a single-file CI check that reads the model ids in your repo and fails when one is deprecated, retiring soon or re-priced — no key, no dependencies. The same data powers /llms.txt for AI agents and /rss.xml for change events. Spot something wrong — a stale price, a missing model? Tell us; corrections against an official source ship the same day.