Static JSON only (no query API). Same files for automation and humans. CC BY 4.0 — attribute ComputeNav when redistributing.

Quick start

Load in order:

  1. llms.txt — short machine-oriented overview.
  2. index.json — version, endpoints, license, generated_at.
  3. models.jsonmeta + entries (one object per hosted offer).
  4. site_news.json — optional curated outbound links for the Models News card (items[] with title, url, source, date, summary, keywords[]).
  5. models_catalog.json — mirror of models_catalog.csv (includes optional model_intro per model for Models).
  6. indicators.json — manually curated proxy metrics for AI compute supply/demand (used by Indicators).

Use source_url on each entry to answer “where did this price come from?”. All figures are indicative; confirm with the provider before buying or relying on SLAs.

Task Weigh — describe a workload, estimate tokens (Claude Haiku 4.5 via a small proxy), and compare indicative provider costs using the same models.json data.

index.json

version 2: includes shards (paths to per-modality JSON) and totals.n_entries / totals.by_shard. Legacy clients can still use endpoints.modelsmodels.json (chat / text panel). Empty shards: image_models.json, video_models.json, embedding_models.json.

Also: endpoints (including indicatorsindicators.json), note, documentation, gcpi, license, generated_at.

models.json shape

{
  "meta": {
    "generated_at": "…",
    "methodology_version": "0.2.0",
    "snapshot_date": "YYYY-MM-DD",
    "n_entries": 0,
    "n_providers": 0,
    "source": "computenav.com",
    "license": "CC BY 4.0"
  },
  "entries": [ { … }, … ]
}

Each entries item = one row in the panel (one offer).

Entry fields (per offer)

Field Meaning
model_label Human-readable model name from the provider.
model_id Provider-specific id or slug.
model_developer Organization that released the weights (e.g. Meta, OpenAI).
model_release_date Public release date YYYY-MM-DD (curated).
model_parameters Stated parameter scale (e.g. 70B, 671B) or .
capability_score / capability_metric Optional capability signal: numeric capability_score plus capability_metric = lmsys_elo (Chatbot Arena Elo), mmlu, humaneval, mt_bench, composite, or other. Do not rank across different metrics as if they were one scale.
quantization_precision Quantization precision for served weights (e.g. FP16/BF16 (typical), Not disclosed).
model_type Lowercase tags, comma-separated: chat, vision, reasoning, image, video, audio, etc.
model_source open | closed | unknown (weights availability).
compute_provider / provider Host / API vendor (same value twice for compatibility).
price_per_1m_input / price_per_1m_output USD per 1M tokens (numbers).
price_blended Blended $/1M used for default sorting (panel convention).
modality / pricing_unit modality: chat | image | video | embedding. pricing_unit: e.g. per_1m_tokens, per_image, per_second.
price_usd_per_image Image rows: USD per image (empty for other modalities).
price_usd_per_video_second Video rows: USD per second of output (empty elsewhere).
price_usd_per_1m_embedding_input Embedding rows: USD per 1M input tokens (empty elsewhere).
latency_ms / throughput_tps Indicative performance (not live benchmarks).
context_window Max context in tokens.
openai_compatible Boolean — OpenAI-style chat/completions on api_base_url.
endpoint Primary product or vendor URL.
api_base_url OpenAI-compatible API base if applicable.
developer_website / provider_website Official sites for model author and host.
region Hosting geography (lowercase): us, eu, asia, uk, global, or ISO 3166-1 alpha-2 (e.g. de, jp).
geo_fencing Short geographic fence / residency tag (summary; verify with vendor).
data_privacy_no_train Data privacy and training policy — curated note; always confirm vendor terms.
source_url Pricing source for verification.
fetched_at / source / price_snapshot_date Row lineage and snapshot date.
status healthy | degraded | etc.

Example: fetch in JavaScript

const base = new URL("../api/v1/", window.location.href);
const res = await fetch(new URL("models.json", base));
const { meta, entries } = await res.json();
const openCheap = entries
  .filter((e) => e.model_source === "open")
  .sort((a, b) => a.price_blended - b.price_blended)[0];

Filtering & ranking

No server-side filters — sort and filter entries in your code. The public site applies its own client-side keyword logic for search; you can mirror that behavior or implement your own.

Provider logos marquee