Live model pricing, in one call
Current prices, context windows and API identifiers for 125 models across 10 providers. No key, no account, CORS open, MIT licensed. Use the package, the MCP server, or just the JSON.
The package
npm i statlyte
import { costOf, getModel, rankByCost } from 'statlyte';
// what a call actually cost
await costOf('claude-sonnet-5', { input: 12_000, output: 800 });
// look up by statlyte id or the vendor's own api id
const m = await getModel('gpt-5-mini');
m.contextWindow; // 400000
m.prices.input; // 0.25 per MTok
// cheapest for a real monthly workload
await rankByCost({ inputPerMonth: 620e6, outputPerMonth: 210e6 });
Zero dependencies. Node, Bun, Deno, Workers, browser. Ships a bundled snapshot so a flaky network never throws in your request path.
The MCP server
claude mcp add statlyte -- npx -y github:richardwilkinson9/statlyte-data
An assistant's training data goes stale on prices within weeks, and a guessed number is worse than no number. This gives it the current figures, with the vendor page they came from.
list_models · get_model_pricing · estimate_cost ·
cheapest_for_workload · scheduled_price_changes
Listed in the official MCP Registry.
Fail your build before the invoice does
scheduledChanges() returns increases vendors have announced but not yet applied.
Wire it into CI and a price rise becomes a failing check rather than a surprise line item.
const soon = (await scheduledChanges())
.filter(c => MODELS_WE_USE.includes(c.id))
.filter(c => new Date(c.effectiveOn) - Date.now() < 60 * 86400_000);
if (soon.length) process.exit(1);
Or just the JSON
GET https://statlyte.com/api/v1/models
GET https://statlyte.com/api/v1/models/anthropic/claude-opus-5
GET https://statlyte.com/api/v1/changes
Paid endpoints
Current prices are free and will stay free — that is the point of the project. What Pro adds
is the archive: the full observation series per model, filtered change streams, and
bulk CSV. Nobody can reconstruct that after the fact, which is the only part worth charging
for. Pass your key as Authorization: Bearer sk_live_…
GET https://statlyte.com/api/v1/history/anthropic/claude-sonnet-5
GET https://statlyte.com/api/v1/changes?limit=500&kind=price_rise&provider=openai
GET https://statlyte.com/api/v1/export.csv
Fair use and caveats
1,000 requests a day on open endpoints, 50,000 on Pro. Attribution appreciated, not required. Two things to hold in mind: these are list prices, and negotiated or regional rates differ; and cheaper is not substitutable — this records what models cost, not what they can do.