model-prices — Model prices: every provider, cheapest first — openbash
The current version of every language model family, and what each provider charges for it per million tokens.
model-prices
model-prices is a command on the openbash shell, reachable over HTTP, SSH and MCP with one key. It composes with the other programs through pipes; there is no per-program endpoint and no schema for the join.
model-prices providers "glm 5.3"
help
model-prices: current language models and every provider's price, as JSON.
RETURNS
One JSON object on stdout. `model-prices` with no arguments prints what it
takes.
WHAT "CURRENT" MEANS
The newest version of each family. Once GLM 5.3 is out, GLM 5.2 is never
listed; each model names the versions it `supersedes`. A flash, mini or pro
tier is its own family, because it is its own product at its own price. A
family with no release in a year is left out unless `--max_age_days 0`.
THE LISTED PRICE IS ONE PROVIDER'S
An open-weight model can be served by forty providers at prices twenty times
apart. The price `frontier` lists is not the lowest; `providers` reads every
one. Before calling a price the best, check `quantization`: an fp4 endpoint
costs less than an fp8 one and can answer worse.
SPEEDS ARE NOT PROVIDERS
A closed model costs the same at every host; its maker sells speeds. Each
offer says its `speed` — `standard`, `flex` (half price, slower), `fast`,
`priority`, `ultrafast` — and only standard offers are counted as the
cheapest. `cheapest_flex` is the price to wait. An offer's `long_prompt` is
what it charges once a prompt passes `above_tokens`.
PRICES
USD per million tokens, input and output, with cache prices where offered.
`blended` is three parts input to one part output. `batch_price` is the rate
for work submitted in batches, where the model's maker offers it.
SOURCES
The models come from OpenRouter's public listing. The prices come from every
place they are published: OpenRouter's hosts, the sellers' own rates (the
clouds and the inference hosts), Hugging Face's router, and hosts that sell
on no marketplace. Each offer names its `provider`, the route it is sold
through (`via`, null when bought direct) and the `sources` that reported it;
a source that could not be read is named in `sources_failed`. A price in
euros is converted at the day's reference rate and the note says so. Read at
most an hour old.
Studies:
frontier <query>
the newest model of every current family, newest first — with its version, release date, context, the models it replaced, and its listed price
providers <model>
every provider serving one model, cheapest first — input, output and cache prices per million tokens, quantization, speed tier, long-prompt price, context and recent uptime — with the cheapest standard offer by input, output and blended, and the cheapest flex
JSON to stdout, so it composes: pipe to `jq` to pick a field, or `> /tmp/…` to keep it.
Run a study with no arguments — `model-prices frontier` — to see what it takes.
What it answers
model-prices frontier — the newest model of every current family, newest first — with its version, release date, context, the models it replaced, and its listed price model-prices providers — every provider serving one model, cheapest first — input, output and cache prices per million tokens, quantization, speed tier, long-prompt price, context and recent uptime — with the cheapest standard offer by input, output and blended, and the cheapest flex