Data API

Read-only JSON and CSV. No authentication required.

Base URL: https://kiankyars.github.io/model-tracker/api/v1/

Endpoints

Only partitions listed in the index exist. An unpublished month, developer, or model path returns HTTP 404. Follow the index instead of guessing identifiers.

Querying

GitHub Pages serves static resources. Query strings do not filter API responses. Use a month or developer partition to reduce transfer, or fetch the full catalog and filter locally. The website's URL parameters are browser filters, not API parameters.

const base = 'https://kiankyars.github.io/model-tracker/api/v1/';
const response = await fetch(`${base}models.json`);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { models } = await response.json();
const results = models.filter(model =>
  model.open_weights === true &&
  model.parameters_b !== null &&
  model.parameters_b <= 8 &&
  model.release_date?.startsWith('2025-')
);
console.table(results.map(({ name, release_date, parameters_b }) =>
  ({ name, release_date, parameters_b })
));
curl -fsSL https://kiankyars.github.io/model-tracker/api/v1/models.json \
  | jq '.models[] | select(.developer_id == "anthropic")'

Interpreting fields

A model keeps the same canonical id as it moves from announcement to availability. Missing dates or sizes do not exclude a verified model from the catalog.

total_models and developer count include all catalog records. recorded_releases, by_month, and developer recorded_releases require a release date and exclude announcements. unknown_release_dates excludes models still marked announced. The availability counts report explicit reviewed states and not_recorded separately. Other top-level counts describe the complete catalog. Months with no recorded releases have no API partition; the UI fills empty months with zero. Neither zero nor a high recent count measures completeness.

The website date filter and date sort use the release date, falling back to the announcement date. All charts and the summary beneath them count only recorded releases.

Models can have overlapping types: a model may be both multimodal and reasoning-capable. Unknown numerical values are not zero and should be excluded from numerical averages. Use the catalog's coverage counts to disclose missingness in your own analysis.

Versioning and refreshes

The /v1/ contract supports additive fields. Clients should ignore unfamiliar fields and tolerate nulls. Data corrections can change historical aggregates; pin a repository commit when you need a reproducible dataset.

Releases are researched daily. GitHub Pages publishes changes after validation. updated_at is the later of source retrieval and completed research. source.retrieved_at dates the Models.dev snapshot; optional research.reviewed_at dates the latest research review.

Cache downloads and use conditional requests with ETag or Last-Modified when provided. GitHub Pages caching and hosting limits apply.

For agents

llms.txt links to data and documentation. Automated reading and reuse are permitted under the MIT license. Model weights and third-party publications retain their own licenses. See coverage.