The dataset
The complete record is published as files. For a spreadsheet, use the two CSV files; for every source, the gzipped JSON, one file per year, indexed by the manifest. The same files drive this site. There is no separate API, and the paths below are stable.
Files
| File | Contents |
|---|---|
releases.csv | One row per entry: dates, lab, availability, the four disclosure items, parameters and their basis, predecessor, and the primary source. In the four disclosure columns, absence is written as a word (NOT_DISCLOSED or NOT_RESEARCHED), never left blank. |
scores.csv | One row per benchmark score, with its source class, source URL, retrieval date and test settings. |
manifest.json | Index of entry files with per-file entry counts, ids, and SHA-256 checksums. |
derived/deltas.json.gz | Predecessor comparisons per entry: a change, or the reason no change is shown. The site renders this file verbatim. |
derived/views.json.gz | Derived chart datasets: release cadence, benchmark trajectory series, disclosure matrix, and registry measures. The site's charts draw from this file. Comparisons between models are calculated before publishing. The site also works out counts, shares and medians for whatever view you filter to, using the rules on the methodology page. |
derived/site_meta.json | Record counts, date range, and the date of the last successful update. |
Fields
Each entry in the JSON files carries these fields; releases.csv carries those not marked JSON only.
| Field | Meaning |
|---|---|
id | Stable identifier: organization key, two hyphens, model slug. It also opens the entry in the explorer: explorer.html?id=<id>. |
model_name, org | The model as the lab names it, and the organization key. A correction_note explains any name or date we corrected from the source. |
date | The release date: Epoch AI's date for entries built from its data (usually the announcement or paper date), and the lab's announcement date for entries found by the nightly check or recorded by hand. The methodology explains the exceptions. |
entry_type | release, or revision: an update to a model already on record, shipped under the same name. |
availability_class | open_weights, public_api, or public_service (a product people can sign up for). |
origin | How the entry reached the record: backfill-epoch (from Epoch AI's dataset), nightly-pipeline (found by nightly detection, approved by hand), or manual (recorded by hand). |
parameters | Total parameter count. NOT_DISCLOSED here means no count is on record: for entries built from Epoch AI's data, Epoch has none and we have not checked the labs' pages; for entries added since, the lab's own pages state none. parameters_basis says whether a count is the lab's own or reported by others. |
parameters_basis | lab (the lab's own count), third_party (a count Epoch AI records from a report by others: a rumor, a leak, an estimate, a newsletter, another party's paper or a post on X), or NOT_DISCLOSED when there is no count. Third-party counts are left out of every parameter finding. |
parameters_note | JSON only, on third_party counts: Epoch AI's note on where the count came from. |
summary | A short account of the release, written to what the sources support, with lab claims attributed to the lab. |
variants | JSON only: other sizes or versions announced with the release and recorded under it. |
license_note | JSON only: the license or access terms as Epoch AI records them, or null. |
epoch_row_name | JSON only: Epoch AI's row name, where the entry's name differs from it. |
predecessor | The id of the model this one follows, where the lab or the model family makes it clear. Comparisons against the predecessor are in derived/deltas.json.gz. |
system_card, model_card, usage_policy, paper | A link to the document, NOT_DISCLOSED (we checked the lab's pages and found none), or NOT_RESEARCHED (not yet checked). Neither means zero. |
disclosure_archived | JSON only: for each disclosure link, a dated archive.org copy of the same page. |
benchmarks | Scores on GPQA Diamond and SWE-bench Verified only. Each carries its source class (LAB_REPORTED or INDEPENDENT), source URL, benchmark version, retrieval date and test settings (configuration), and an archived_url where one exists. scores.csv has one row per score. |
unpinned_claims | JSON only: benchmark figures the lab stated without a benchmark version, kept as written and never published as scores. |
sources | Every page the entry was built from, each with its kind, the date we read it, and an archived_url (a dated archive.org copy) where one exists. |
retracted | true when the entry should not have been on the record; the note says why. A corrected entry stays false and carries a correction_note instead. |
correction_note | The old value and the evidence, where we corrected the source. |
organization, primary_source_url | CSV only: the lab's display name, and the first source that is not Epoch AI's dataset. |
License
The published dataset (the files above) is licensed under the Creative Commons Attribution 4.0 International License (CC-BY 4.0).
Required attribution for Epoch AI derived fields
Portions of the dataset are derived from two Epoch AI datasets, both used under CC-BY 4.0. If you redistribute or build on those fields, you must retain the following attributions:
Epoch AI, "Data on AI Models". Published online at epoch.ai. Retrieved from https://epoch.ai/data/ai-models [online resource].
Epoch AI, "Capabilities & benchmarking". Published online at epoch.ai. Retrieved from https://epoch.ai/benchmarks [online resource].
Release dates, lab names, parameter counts and availability come from Epoch AI's models dataset. Independent scores come from Epoch AI's benchmarking data.
Cite this dataset
The record changes as releases are added and corrected, so cite the date you retrieved it.
Walker Robinson. Version Control: a public record of AI model releases. Dataset, CC BY 4.0. https://versioncontrol.walker-robinson.com. Record updated (the date of the last update); accessed (today).
@misc{versioncontrol,
author = {Robinson, Walker},
title = {Version Control: a public record of AI model releases},
howpublished = {\url{https://versioncontrol.walker-robinson.com}},
note = {Dataset, CC BY 4.0. Record updated (the date of the last update); accessed (today)},
year = {2026}
}What the dataset does not contain
OpenRouter's catalog is not in the dataset, and the site does not show its prices or context lengths. Prices quoted in an entry's summary are the lab's own figures. Artificial Analysis data is not in the dataset either: we use it only for an internal check of which models we might be missing.
Cost of operation
The registry runs on static hosting and scheduled jobs at zero infrastructure cost, plus a small metered cost for the nightly drafting step, capped at $2 a month.