Open data
Every tracker on this site is rendered from committed JSON files, and those files are public. Build on them: dashboards, alerts, CI checks, migration tooling. All we ask is attribution. If you use this data, link to aiflashreport.com.
Jump to: Deprecations · Price history · Model releases · Calendar feed · Weekly digest · Reference integration
How the data is maintained
- Weekly, delta-gated. Scheduled GitHub Actions refresh the files each week and commit only when something actually changed, so file timestamps mean something.
- Provenance on the row. Deprecation rows carry the official vendor source URL they were scraped from; release records link their announcement.
- No invented values. When a source does not state a value, the field is empty or null. Nothing is guessed and no LLM writes into these files.
- Attribution requested. The data is free to reuse; link to aiflashreport.com when you use it.
Model deprecations
https://aiflashreport.com/data/deprecations.json
A flat JSON array with one object per deprecation record: 210 rows covering Anthropic, Google, OpenAI, scraped from each vendor's official deprecation page. This is the file behind the deprecation calendar. Refreshed weekly (Mondays) by a scheduled scrape; committed only when rows change. When independent trackers disagree with a vendor's date, the row keeps the vendor's date and records the conflict instead of silently picking one.
| Field | Type | Meaning |
|---|---|---|
| model_slug | string or null | Slug of the model's page on this site (/models/<slug>/), null when untracked |
| provider | string | Vendor name, e.g. Anthropic |
| model_name | string | Model identifier as the vendor lists it |
| announced_at | date string or null | When the deprecation was announced (YYYY-MM-DD) |
| shutdown_at | date string or null | Vendor-stated shutdown date (YYYY-MM-DD) |
| replacement_slug | string or null | Site slug of the recommended replacement model |
| replacement_name | string or null | Vendor-recommended replacement model |
| status | string | One of announced, extended (shutdown date moved later), shutdown |
| source_url | string | The official vendor deprecation page this row was scraped from |
| retrieved_at | datetime string | Last time this row was verified or changed (ISO 8601 UTC); stable while the row is unchanged |
| conflicting_sources | array (optional) | Present only when an independent tracker disagrees; each entry records the source, its URL, and its differing date |
curl -s https://aiflashreport.com/data/deprecations.json | jq '[.[] | select(.status == "announced")] | length' Attribution: link to aiflashreport.com when you use this data.
API price history
https://aiflashreport.com/data/price_history.json
Append-only price observations: 136 rows, one per (model, observed price change). Rows are never rewritten or rolled up; a new row is appended only when a model's current API price differs from its latest recorded row, so consecutive rows for a model are always a genuine change. This is the file behind the price tracker. Refreshed weekly (Sundays). Prices are normalised to floats in US dollars per million tokens; models whose pricing cannot be normalised are skipped, never zero-filled.
| Field | Type | Meaning |
|---|---|---|
| model_slug | string | Model slug, joinable against model_releases.json and /models/<slug>/ |
| observed_at | datetime string | When this price was observed (ISO 8601 UTC) |
| input_per_mtok | number or null | Input price in USD per million tokens (0.0 = free) |
| output_per_mtok | number or null | Output price in USD per million tokens |
| cache_read_per_mtok | number or null | Cached-input read price in USD per million tokens |
| source | string | weekly_refresh (observed by the weekly tracker run) or git_backfill (recovered from the git history of the model database) |
curl -s https://aiflashreport.com/data/price_history.json | jq '[.[] | select(.model_slug == "anthropic-claude-3-5-sonnet")]' Attribution: link to aiflashreport.com when you use this data.
Model release database
https://aiflashreport.com/data/model_releases.json
The full model database: 120 tracked releases, one JSON object per model. This file drives the model pages, comparisons, and timeline. Refreshed weekly. Fields the source did not state are empty strings, empty arrays or objects, or null; nothing is guessed to fill a gap.
| Field | Type | Meaning |
|---|---|---|
| slug | string | Stable identifier; the model's page lives at /models/<slug>/ |
| name | string | Model name |
| company | string | Releasing company |
| release_date | date string | Release date (YYYY-MM-DD) |
| model_type | string | e.g. LLM, image, speech |
| category | string | Editorial release category, e.g. Major Release |
| tagline | string | One-line summary |
| description | string | Longer description; may be empty |
| parameters | string | Parameter count as published, e.g. "~1T MoE" |
| architecture | string | Architecture as published, e.g. "Sparse Mixture-of-Experts (MoE)" |
| training_tokens | string | Training-corpus size as published |
| context_window | string | Context window, e.g. "1M tokens" |
| max_output_tokens | string | Maximum output length |
| input_modalities / output_modalities | string[] | Supported input and output modalities |
| knowledge_cutoff | string | Knowledge cutoff date as published |
| license | string | e.g. Proprietary, Apache 2.0 |
| availability | string | How the model is offered, e.g. API |
| pricing | object | API prices as dollar strings: input_per_mtok, output_per_mtok, cache_read_per_mtok (normalised floats live in price_history.json) |
| providers | array | Hosting providers, when tracked |
| rate_limits | object or null | Published rate limits, when stated |
| benchmarks | object | Published benchmark scores, keyed by benchmark |
| performance_metrics | object | Additional published performance figures |
| key_features | string[] | Headline features as published |
| links | object | Related URLs (docs, model card, etc.) |
| announcement_url | string | Primary source for the release |
| predecessor_slug | string or null | Slug of the model this one supersedes |
| changelog | array | Dated post-release changes to the model's entry |
| launch_coverage | array | Launch-week coverage links |
| model_release_at | object or null | Provenance for the release date: value, source, source_url |
curl -s https://aiflashreport.com/data/model_releases.json | jq '.[] | select(.company == "anthropic") | {name, release_date, context_window}' Attribution: link to aiflashreport.com when you use this data.
Shutdown calendar feed (.ics)
https://aiflashreport.com/deprecations.ics
The upcoming shutdowns from deprecations.json as an RFC 5545 iCalendar feed: one all-day VEVENT per announced future shutdown (84 at the last build), each carrying the model, provider, replacement, and the official source URL in its description. Subscribe to it from any calendar app and shutdown dates appear, and move, with the weekly refresh. Only vendor-published dates are included.
curl -s https://aiflashreport.com/deprecations.ics | grep -c '^BEGIN:VEVENT' Attribution: link to aiflashreport.com when you use this data.
Weekly delta digests
https://aiflashreport.com/data/weekly_digest/<YYYY>-W<ww>.json e.g. 2026-W30.json
One JSON file per ISO week, assembled deterministically from the three files above: the week's new model releases, API price changes (with the previous price attached), and new or changed deprecation rows. The same JSON renders the weekly changes pages, so page and data can never disagree. Built weekly (Mondays); a week with no changes produces no new commit.
| Field | Type | Meaning |
|---|---|---|
| schema | string | Schema tag, currently weekly_digest_v1 |
| week | string | ISO week, e.g. 2026-W30 |
| week_start / week_end | date strings | Monday and Sunday of the week (YYYY-MM-DD) |
| generated_at | datetime string | Build timestamp (ISO 8601 UTC) |
| new_models | array | Releases dated inside the week; each entry: slug, name, company, release_date, model_type, availability, context_window, announcement_url, tagline |
| price_changes | array | Price observations inside the week; each entry: model_slug, model_name, observed_at, input_per_mtok, output_per_mtok, cache_read_per_mtok, plus previous (the prior observation, or null) |
| deprecations | array | Deprecation rows new or changed inside the week, with the same fields as deprecations.json rows |
curl -s https://aiflashreport.com/data/weekly_digest/2026-W30.json | jq '{week, new: (.new_models | length), prices: (.price_changes | length), deprecations: (.deprecations | length)}' Attribution: link to aiflashreport.com when you use this data.
Reference integration
ai-model-deprecation-check is a GitHub Action built on deprecations.json: it scans a repo for pinned model IDs and fails CI when one has an announced shutdown. Use it directly, or use its source as a worked example of consuming these endpoints.
One email when a frontier model ships, changes price, or is deprecated. No noise.