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