A vendor-neutral, kind-aware catalog of LLM, embedding, rerank & media models — which ids exist per vendor and, for each, its kind, context window and capabilities — plus an optional indicative US list price. No key, no server. Just clean JSON.
Ask in plain language and get a grounded answer with a cited deep-link to every model it names — one click from claim to evidence. The answer comes from a separate structured-RAG backend reading this catalog's data; nothing is invented. Prices & benchmarks stay indicative / cited — verify at the source.
Your question is sent to an external service to generate the answer — everything else on this page runs in your browser.
Every provider ships its own shape, its own churn and its own docs. This catalog normalizes them into one contract the whole community can build on.
One envelope across OpenAI, Anthropic, Gemini, Bedrock, Mistral, Cohere, Voyage, Ollama and more. One parser reads them all.
Every id tagged by kind — chat, embedding, rerank, image, speech, transcription, video — with context window and capabilities.
Static, CORS-open, versioned JSON on GitHub Pages. No key, no rate limit, no server. Pin schema v1 and lock on.
Regenerated entries carry their sources and lastVerified. Any price is an indicative US list reference — verify with the vendor. We omit a field before we guess it.
Cross-vendor decision views derived from the catalog's indicative prices and cited benchmarks — a reference only, verify at the source. The scatter plots every chat model carrying both a price and a cited intelligence index; each leaderboard shows its population over the total.
Log price axis. The dashed line is the price/intelligence frontier — models where nothing cheaper is also smarter. Click a dot for the full record. Intelligence is a cited third-party index, not our verdict.
Search, filter by kind, capability or modality, and use Sort to rank across every vendor at once. Each model is a card showing all of its recorded fields; optionally group the results by vendor, kind or tier — or press ⌘K to jump anywhere.
Each model shows a use-case tag (derived from its kind, capabilities and modalities) and, when priced, a coloured tier — Frontier High Mid Light — bucketed from the vendor's US list price as a market proxy for capability (not a benchmark or quality score).
Aggregates, coverage, consumer plans and the pricing-source registry — kept off the main path, in one place. Recomputed at every publish, so they never drift.
Live aggregates from stats.json — models by vendor and kind, context-window spread, capabilities, modalities and field coverage.
Per-vendor field fill rate from coverage.json. Every faint or empty cell is an open invitation to propose a correction — click one for a pre-filled proposal.
Vendor consumer subscription tiers from plans.json — a separate dataset (plans aren't models). Each price is an indicative US list price: a reference only, excludes tax — verify with the vendor.
The official vendor pages to verify the catalog's indicative prices against, from providers.json. Grouped by provider type; ✓ marks providers whose models are in the catalog.
Static, CORS-open, versioned JSON — every path is a plain GET. Faceted slices are pre-computed at publish time, all sharing one vendors-map envelope.
| Endpoint | What you get |
|---|---|
catalog.json | Full catalog — every vendor, every field. Rolling latest. |
catalog-v1.json | Same, pinned to schema v1 — safe for consumers to lock onto. |
index.json | Compact index — each model trimmed to { vendor, id, label, kind }. ~70% smaller; ideal for model-pickers that lazy-load the full record. |
stats.json | Aggregate metrics — counts per vendor / kind / capability / modality, field-fill coverage and totals. One number instead of re-aggregating the catalog. |
coverage.json | Per-vendor field fill rate — { filled, rate } per field, per vendor, plus overall. Makes gaps visible so they become an open invitation to contribute. |
leaderboards.json | Decision leaderboards — cheapest per kind, best intelligence-per-$, biggest context, fastest. Each carries its population/total. Derived from indicative/cited figures — a reference, verify at the source. |
changes.json · feed.xml | Change feed — what was added / removed / lifecycle-changed at the last publish, as JSON and a subscribable Atom feed. |
catalog.csv · catalog.ndjson | Flat exports — one row / one JSON line per model. For spreadsheets, jq -c, grep and data pipelines that don't want nested JSON. |
by-kind/<KIND>.json | Filtered to one kind — e.g. EMBEDDING, CHAT. |
by-vendor/<vendor>.json | Filtered to one vendor — e.g. openai. |
by-capability/<cap>.json | Filtered to one capability — e.g. reasoning, vision. |
by-modality/<m>.json | Filtered to one input/output modality — e.g. image, audio. |
aliases.json | Alias resolution map — alias id → { vendor, id } of the canonical entry. Resolve -latest / dated snapshots without walking the catalog. |
plans.json | Consumer subscription plans — a separate dataset (Claude, ChatGPT, Gemini, Z.ai), each with an indicative US list price. A reference only — verify with the vendor. |
providers.json | Pricing-source registry — each provider's official API-pricing / consumer-plans page, categorized and linked to its catalog vendor. The canonical places to verify indicative prices. |
badge.json | Status badge — a shields.io endpoint payload for a live "N models · M vendors" README badge. |
llms.txt · models/… | Citability layer — an llms.txt index plus an indexable, quotable page (Markdown + HTML) per vendor and per model, for assistants and search engines. |
endpoints.json | Discovery manifest — absolute URLs for every path, plus the available byKind/byVendor keys. Read this instead of hard-coding paths. |
catalog.schema.json | JSON Schema (Draft 2020-12) describing the envelope + entry. |
# every embedding model, from the pre-filtered slice
curl -s https://openviglet.github.io/model-catalog/by-kind/EMBEDDING.json \
| jq '.vendors | to_entries[].value[].id'
# discover the whole surface
curl -s https://openviglet.github.io/model-catalog/endpoints.json | jq
<!-- Markdown -->

Zero-dependency, read-only clients — URL selection (rolling / pinned / compact), vendors-map flattening, byKind/byVendor/get filters and in-memory caching. All Apache-2.0, all unauthenticated.
pip install openviglet-model-catalog-client
npm i @openviglet/model-catalog-client
<dependency>
<groupId>io.github.openviglet</groupId>
<artifactId>model-catalog-client</artifactId>
<version>1.0.2</version>
</dependency>
implementation 'io.github.openviglet:model-catalog-client:1.0.2'
implementation("io.github.openviglet:model-catalog-client:1.0.2")
libraryDependencies += "io.github.openviglet" % "model-catalog-client" % "1.0.2"
This is a community-owned reference — it gets better when you correct it. Propose a model in a structured issue; a maintainer verifies it and folds it in through the propose-and-review pipeline. No auto-publish, ever.
Open the issue form with the vendor, id, kind and whatever facts you're sure of — plus a source. Every model's detail panel deep-links here, pre-filled.
A maintainer pins the verified fact in overrides.json and runs the pipeline read-only — fetch, merge, validate, diff report. Nothing is written yet.
regen --apply writes the canonical file and a PR opens for review. Identity, kind, capability — plus an indicative US list price (a reference, verify with the vendor).