LLM Models
A snapshot as of October 2026 of production language model metadata (45 models) across the major providers — Anthropic, OpenAI, Google, Mistral, DeepSeek, xAI, Meta, Alibaba, Cohere — with each model's context window, max output tokens, input and output prices in USD per million tokens, vision and tool-use capabilities, knowledge cutoff date, release date, and deprecation date if announced.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/llm-models.json
Or use as a typed import:
import { llmModels } from "https://staticdata.dev/v1/llm-models.ts"
Formats
- JSON 19.3 KB
/v1/llm-models.json
min: 15.6 KB · /v1/llm-models.min.json
- CSV 6.3 KB
/v1/llm-models.csv
- TypeScript 19.5 KB
/v1/llm-models.ts
export const llmModels
type LlmModel = (typeof llmModels)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| id | string | API identifier exactly as accepted by the provider | claude-opus-4-7 |
| provider | string | Provider name | Anthropic |
| family | string | Model family the version belongs to | Claude 4 |
| contextWindow | number | Maximum context window in tokens (input + output) | 1000000 |
| maxOutputTokens | number | Maximum output tokens per synchronous request (set equal to the context window where the provider publishes no separate output cap) | 128000 |
| inputPricePerMillionUsd | number | Standard input price per million tokens in USD | 5 |
| outputPricePerMillionUsd | number | Standard output price per million tokens in USD | 25 |
| supportsVision | boolean | Whether the model accepts image inputs | true |
| supportsTools | boolean | Whether the model supports tool / function calling | true |
| knowledgeCutoff | string | ISO YYYY-MM month of the model's (reliable) knowledge cutoff, or "unknown" where the provider publishes none | 2026-01 |
| released | string | ISO YYYY-MM month the model was released | 2026-04 |
| deprecated? | string | null | ISO YYYY-MM month the provider announced the model's deprecation (retirement notice), or null while it is active | |
| sourceUrl | string | URL to the provider's documentation for the entry | https://platform.claude.com/docs/en/about-claude/models/overview |
Preview
First 10 records.
| id | provider | family | contextWindow | maxOutputTokens | inputPricePerMillionUsd |
|---|---|---|---|---|---|
| claude-opus-4-7 | Anthropic | Claude 4 | 1000000 | 128000 | 5 |
| claude-sonnet-4-6 | Anthropic | Claude 4 | 1000000 | 128000 | 3 |
| claude-haiku-4-5 | Anthropic | Claude 4 | 200000 | 64000 | 1 |
| claude-opus-4-5 | Anthropic | Claude 4 | 200000 | 64000 | 5 |
| claude-3-5-sonnet-20241022 | Anthropic | Claude 3.5 | 200000 | 8192 | 3 |
| claude-fable-5-1 | Anthropic | Claude 5 | 1000000 | 128000 | 10 |
| claude-opus-5-5 | Anthropic | Claude 5 | 1000000 | 128000 | 4 |
| claude-sonnet-5-5 | Anthropic | Claude 5 | 1000000 | 128000 | 2 |
| claude-fable-5 | Anthropic | Claude 5 | 1000000 | 128000 | 10 |
| claude-opus-5 | Anthropic | Claude 5 | 1000000 | 128000 | 5 |
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/llm-models.json | jq '.[0]' import type { LlmModel } from "https://staticdata.dev/v1/llm-models.ts";
const res = await fetch("https://staticdata.dev/v1/llm-models.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const llmModels: LlmModel[] = await res.json();
console.log(llmModels[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/llm-models.min.json") as r:
llmModels = json.load(r)
print(llmModels[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/llm-models.min.json")
if err != nil { panic(err) }
defer resp.Body.Close()
var data []map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data[0])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/llm-models.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
This dataset moves faster than any other on the site. Providers ship new models, change prices, deprecate old endpoints, and revise context-window limits on a near-monthly cadence. This is a snapshot as of October 2026: values were re-checked against each provider’s official model, pricing, and deprecation pages in early October 2026. Verify against the provider’s docs before making pricing or capability decisions in production.
Each entry’s sourceUrl points to the provider’s official documentation page. If a price or limit looks wrong, click through and check; we update from those pages.
Pricing is the standard, on-demand API price for the base tier (for example the lower prompt-length tier where a provider charges more for very long prompts, and DeepSeek’s standard rather than off-peak price). Provisioned throughput, batch discounts, long-context surcharges, fine-tuned model surcharges, promotional prices, and prompt-caching discounts are not represented.
Context windows are the maximum token capacity per request. The maxOutputTokens is the per-request output cap on the synchronous API, which is often much smaller than the full context window; where a provider publishes no separate output cap (some Mistral, xAI, and hosted Llama listings), it is set equal to the context window. knowledgeCutoff is "unknown" where the provider does not publish a cutoff; for Anthropic models it is the “reliable knowledge cutoff” from the models overview.
Models from open-weight families (Llama, Qwen, DeepSeek, Mistral) have prices reflecting hosted-API pricing from the model’s primary provider (Llama 3.3 70B: Together AI serverless); running these models on third-party infrastructure or self-hosted will cost differently.
The deprecated field holds the month the provider announced the model’s deprecation or retirement; null means no deprecation has been announced as of October 2026. Retired models (for example claude-3-5-sonnet-20241022, retired in October 2025, or gemini-2.0-flash, shut down in June 2026) are kept with their deprecated month instead of being removed so existing ids stay stable; check the provider’s deprecation page for the exact shutdown date. Price and limit values for retired models are their last published values.
Versioning
URLs under /v1/ are stable: field names and types will not change in a way
that breaks consumers. Values can be corrected or records added when the upstream source
changes; schema-incompatible updates ship under a new version path. See the
llm-models changelog for this dataset's history.