Track

AI pricing changelog

A dated record of observed changes to model pricing, cache rates, and context windows. Most comparison sites show you today's number; this shows you when it moved.

57 snapshots covering 45 models. History begins 2026-01-01; latest 2026-09-29. Observations from models.dev (MIT), diffed against the previous snapshot.

Follow changes:JSON FeedRSS

Quality vs price

pareto frontier highlighted

LMArena agent-preference score against input price. Accent points sit on the price–quality frontier: nothing is both cheaper and better. Model-to-leaderboard identity follows documented pins — effort variants score very differently, so this join is never fuzzy-matched.

Preference data: LMArena (CC BY 4.0), snapshot 2026-09-30. Prices: latest observation.

Input price by tier

$/1M input · linear

Compare models within their tier, stock-chart style. A line begins when the source first lists the model. Steps, not slopes: a price holds until the source records a change.

claude-fable-5$10gpt-5-5-pro$30gpt-5-5$5claude-opus-4-8$5claude-opus-4-7$5gemini-3-1-pro-preview$2

2026-09-29

mistral-small-4Mistral
unreconciled
Cache read $/1M
n/a → $0.015
Verify against the provider page
mistral-medium-3-5Mistral
unreconciledunstable pin
Cache read $/1M
n/a → $0.15
Verify against the provider page
mistral-large-3Mistral
unreconciledunstable pin
Cache read $/1M
n/a → $0.05
Verify against the provider page
codestralMistral
unreconciledunstable pin
Cache read $/1M
n/a → $0.03
Verify against the provider page

2026-09-28

qwen3-7-plusAlibaba
unreconciled
Input $/1M
$0.5 → $0.4(-20.0%)
Output $/1M
$3 → $1.6(-46.7%)
Cache read $/1M
$0.05 → $0.04(-20.0%)
Cache write $/1M
$0.625 → $0.5(-20.0%)
Verify against the provider page

2026-09-22

llama-4-maverickMeta (via OpenRouter)
unreconciled
Input $/1M
$0.2 → $0.1875(-6.3%)
Output $/1M
$0.8 → $0.6525(-18.4%)
Verify against the provider page

2026-09-21

llama-4-maverickMeta (via OpenRouter)
unreconciled
Input $/1M
$0.1875 → $0.2(+6.7%)
Output $/1M
$0.6525 → $0.8(+22.6%)
Verify against the provider page

2026-09-15

llama-4-maverickMeta (via OpenRouter)
unreconciled
Input $/1M
$0.2 → $0.1875(-6.3%)
Output $/1M
$0.696 → $0.6525(-6.2%)
Verify against the provider page

2026-09-11

nova-proAmazon (Bedrock)
unreconciled
Cache write $/1M
n/a → $0.8
Verify against the provider page
nova-liteAmazon (Bedrock)
unreconciled
Cache write $/1M
n/a → $0.06
Verify against the provider page
deepseek-v4-flashDeepSeek
unreconciled
Input $/1M
$0.14 → $0.15(+7.1%)
Output $/1M
$0.28 → $0.6(+114.3%)
Cache read $/1M
$0.0028 → $0.003(+7.1%)
Verify against the provider page

2026-09-07

kimi-k2-5Moonshot AI
unreconciled
Input $/1M
$0.6 → n/a
Output $/1M
$3 → n/a
Cache read $/1M
$0.1 → n/a
Context window
262,144 → n/a
Verify against the provider page

2026-09-01

llama-4-scoutMeta (via OpenRouter)
catalog agrees
Input $/1M
$0.11 → $0.1(-9.1%)
Output $/1M
$0.34 → $0.3(-11.8%)
Cache read $/1M
$0.055 → n/a
Verify against the provider page

2026-08-31

llama-4-maverickMeta (via OpenRouter)
unreconciled
Output $/1M
$0.8 → $0.696(-13.0%)
Verify against the provider page

2026-08-26

llama-4-scoutMeta (via OpenRouter)
unreconciled
Input $/1M
$0.1 → $0.11(+10.0%)
Output $/1M
$0.3 → $0.34(+13.3%)
Cache read $/1M
n/a → $0.055
Verify against the provider page

2026-08-14

llama-4-maverickMeta (via OpenRouter)
unreconciled
Output $/1M
$0.696 → $0.8(+14.9%)
Verify against the provider page

2026-08-11

mistral-medium-3-5Mistral
catalog agreesunstable pin
Context window
n/a → 262,144
Verify against the provider page
llama-4-maverickMeta (via OpenRouter)
unreconciled
Output $/1M
$0.8 → $0.696(-13.0%)
Verify against the provider page
kimi-k2-7-codeMoonshot AI
catalog agrees
Context window
n/a → 262,144
Verify against the provider page
glm-5-2Zhipu (Z.ai)
unreconciled
Context window
n/a → 1,000,000
Verify against the provider page
gemini-2-5-proGoogle
unreconciled
Context window
n/a → 1,048,576
Verify against the provider page
gemini-2-5-flashGoogle
unreconciled
Context window
n/a → 1,048,576
Verify against the provider page
deepseek-v4-flashDeepSeek
catalog agrees
Context window
n/a → 1,000,000
Verify against the provider page
command-r-08-2024Cohere
catalog agrees
Context window
n/a → 128,000
Verify against the provider page
command-aCohere
catalog agrees
Context window
n/a → 256,000
Verify against the provider page

2026-08-02

deepseek-v4-flashDeepSeek
unreconciled
Context window
1,000,000 → n/a
Verify against the provider page

2026-07-21

llama-4-scoutMeta (via OpenRouter)
unreconciled
Context window
10,000,000 → 1,310,720(-86.9%)
Verify against the provider page

2026-07-14

command-r-08-2024Cohere
unreconciled
Context window
128,000 → n/a
Verify against the provider page
command-aCohere
unreconciled
Context window
256,000 → n/a
Verify against the provider page

2026-07-12

llama-4-maverickMeta (via OpenRouter)
unreconciled
Input $/1M
$0.15 → $0.2(+33.3%)
Output $/1M
$0.6 → $0.8(+33.3%)
Verify against the provider page

2026-07-09

llama-4-scoutMeta (via OpenRouter)
catalog agrees
Context window
327,680 → 10,000,000(+2951.8%)
Verify against the provider page

2026-07-05

claude-sonnet-4-5Anthropic
unreconciled
Context window
200,000 → 1,000,000(+400.0%)
Verify against the provider page

2026-07-04

mistral-medium-3-5Mistral
catalog agreesunstable pin
Input $/1M
$0.4 → $1.5(+275.0%)
Output $/1M
$2 → $7.5(+275.0%)
Verify against the provider page

2026-07-02

llama-3-3-70bMeta (via Together AI)
catalog agrees
Input $/1M
$0.88 → $1.04(+18.2%)
Output $/1M
$0.88 → $1.04(+18.2%)
Verify against the provider page

2026-06-30

claude-sonnet-5Anthropic
first observedcatalog agrees
Input $/1M
n/a → $2
Output $/1M
n/a → $10
Cache read $/1M
n/a → $0.2
Cache write $/1M
n/a → $2.5
Context window
n/a → 1,000,000
Verify against the provider page

2026-06-21

glm-5-2Zhipu (Z.ai)
catalog agrees
Input $/1M
$0 → $1.4
Output $/1M
$0 → $4.4
Cache read $/1M
$0 → $0.26
Verify against the provider page

2026-06-15

gemini-2-5-proGoogle
catalog agrees
Context window
1,048,576 → n/a
Verify against the provider page
gemini-2-5-flashGoogle
catalog agrees
Context window
1,048,576 → n/a
Verify against the provider page

2026-06-13

glm-5-2Zhipu (Z.ai)
first observedunreconciled
Input $/1M
n/a → $0
Output $/1M
n/a → $0
Cache read $/1M
n/a → $0
Cache write $/1M
n/a → $0
Verify against the provider page

2026-06-12

kimi-k2-7-codeMoonshot AI
first observedcatalog agrees
Input $/1M
n/a → $0.95
Output $/1M
n/a → $4
Cache read $/1M
n/a → $0.19
Verify against the provider page

2026-06-09

claude-fable-5Anthropic
first observedcatalog agrees
Input $/1M
n/a → $10
Output $/1M
n/a → $50
Cache read $/1M
n/a → $1
Cache write $/1M
n/a → $12.5
Context window
n/a → 1,000,000
Verify against the provider page

2026-06-07

llama-4-scoutMeta (via OpenRouter)
catalog agrees
Input $/1M
$0.08 → $0.1(+25.0%)
Verify against the provider page

2026-06-04

qwen3-7-plusAlibaba
catalog agrees
Context window
131,072 → 1,000,000(+662.9%)
Verify against the provider page
mistral-medium-3-5Mistral
unreconciledunstable pin
Input $/1M
$1.5 → $0.4(-73.3%)
Output $/1M
$7.5 → $2(-73.3%)
Verify against the provider page

2026-06-03

qwen3-7-plusAlibaba
first observedunreconciled
Input $/1M
n/a → $0.5
Output $/1M
n/a → $3
Cache read $/1M
n/a → $0.05
Cache write $/1M
n/a → $0.625
Context window
n/a → 131,072
Verify against the provider page
mistral-medium-3-5Mistral
catalog agreesunstable pin
Input $/1M
n/a → $1.5
Output $/1M
n/a → $7.5
Verify against the provider page

2026-05-28

claude-opus-4-8Anthropic
first observedcatalog agrees
Input $/1M
n/a → $5
Output $/1M
n/a → $25
Cache read $/1M
n/a → $0.5
Cache write $/1M
n/a → $6.25
Context window
n/a → 1,000,000
Verify against the provider page

2026-05-24

deepseek-v4-proDeepSeek
catalog agrees
Input $/1M
$1.74 → $0.435(-75.0%)
Output $/1M
$3.48 → $0.87(-75.0%)
Cache read $/1M
$0.145 → $0.003625(-97.5%)
Verify against the provider page
deepseek-v4-flashDeepSeek
catalog agrees
Cache read $/1M
$0.028 → $0.0028(-90.0%)
Verify against the provider page

2026-05-21

qwen3-7-maxAlibaba
first observedunreconciled
Input $/1M
n/a → $2.5
Output $/1M
n/a → $7.5
Cache read $/1M
n/a → $0.5
Cache write $/1M
n/a → $3.125
Context window
n/a → 1,000,000
Verify against the provider page

2026-05-20

grok-build-0-1xAI
first observedcatalog agrees
Input $/1M
n/a → $1
Output $/1M
n/a → $2
Cache read $/1M
n/a → $0.2
Context window
n/a → 256,000
Verify against the provider page

2026-05-19

gemini-3-5-flashGoogle
first observedunreconciled
Input $/1M
n/a → $1.5
Output $/1M
n/a → $9
Cache read $/1M
n/a → $0.15
Context window
n/a → 1,048,576
Verify against the provider page

2026-05-15

llama-4-scoutMeta (via OpenRouter)
first observedunreconciled
Input $/1M
n/a → $0.08
Output $/1M
n/a → $0.3
Context window
n/a → 327,680
Verify against the provider page
llama-4-maverickMeta (via OpenRouter)
first observedcatalog agrees
Input $/1M
n/a → $0.15
Output $/1M
n/a → $0.6
Context window
n/a → 1,048,576
Verify against the provider page

2026-05-11

gemini-3-1-flash-liteGoogle
catalog agrees
Cache write $/1M
$1 → n/a
Verify against the provider page
gemini-2-5-flash-liteGoogle
catalog agrees
Cache read $/1M
$0.025 → $0.01(-60.0%)
Verify against the provider page

2026-05-07

gemini-3-1-flash-liteGoogle
first observedunreconciled
Input $/1M
n/a → $0.25
Output $/1M
n/a → $1.5
Cache read $/1M
n/a → $0.025
Cache write $/1M
n/a → $1
Context window
n/a → 1,048,576
Verify against the provider page

2026-05-01

grok-4-3xAI
first observedcatalog agrees
Input $/1M
n/a → $1.25
Output $/1M
n/a → $2.5
Cache read $/1M
n/a → $0.2
Context window
n/a → 1,000,000
Verify against the provider page

2026-04-29

mistral-medium-3-5Mistral
unreconciledunstable pin
Input $/1M
$0.4 → n/a
Output $/1M
$2 → n/a
Context window
128,000 → n/a
Verify against the provider page

2026-04-27

gpt-5-5-proOpenAI
first observedunreconciled
Input $/1M
n/a → $30
Output $/1M
n/a → $180
Context window
n/a → 1,050,000
Verify against the provider page

2026-04-24

deepseek-v4-proDeepSeek
first observedunreconciled
Input $/1M
n/a → $1.74
Output $/1M
n/a → $3.48
Cache read $/1M
n/a → $0.145
Context window
n/a → 1,000,000
Verify against the provider page
deepseek-v4-flashDeepSeek
first observedunreconciled
Input $/1M
n/a → $0.14
Output $/1M
n/a → $0.28
Cache read $/1M
n/a → $0.028
Context window
n/a → 1,000,000
Verify against the provider page

2026-04-23

gpt-5-5OpenAI
first observedunreconciled
Input $/1M
n/a → $5
Output $/1M
n/a → $30
Cache read $/1M
n/a → $0.5
Context window
n/a → 1,050,000
Verify against the provider page

2026-04-20

gemini-2-5-flashGoogle
catalog agrees
Cache read $/1M
$0.075 → $0.03(-60.0%)
Verify against the provider page

2026-04-19

gemini-2-5-proGoogle
catalog agrees
Cache read $/1M
$0.31 → $0.125(-59.7%)
Verify against the provider page

2026-04-16

claude-opus-4-7Anthropic
first observedcatalog agrees
Input $/1M
n/a → $5
Output $/1M
n/a → $25
Cache read $/1M
n/a → $0.5
Cache write $/1M
n/a → $6.25
Context window
n/a → 1,000,000
Verify against the provider page

2026-03-29

mistral-small-4Mistral
first observedunreconciled
Input $/1M
n/a → $0.15
Output $/1M
n/a → $0.6
Context window
n/a → 256,000
Verify against the provider page

2026-03-17

gpt-5-4-nanoOpenAI
first observedunreconciled
Input $/1M
n/a → $0.2
Output $/1M
n/a → $1.25
Cache read $/1M
n/a → $0.02
Context window
n/a → 400,000
Verify against the provider page
gpt-5-4-miniOpenAI
first observedunreconciled
Input $/1M
n/a → $0.75
Output $/1M
n/a → $4.5
Cache read $/1M
n/a → $0.075
Context window
n/a → 400,000
Verify against the provider page

2026-03-13

claude-sonnet-4-6Anthropic
catalog agrees
Context window
200,000 → 1,000,000(+400.0%)
Verify against the provider page

2026-03-05

gpt-5-4OpenAI
first observedunreconciled
Input $/1M
n/a → $2.5
Output $/1M
n/a → $15
Cache read $/1M
n/a → $0.25
Context window
n/a → 1,050,000
Verify against the provider page

2026-02-19

gemini-3-1-pro-previewGoogle
first observedunreconciled
Input $/1M
n/a → $2
Output $/1M
n/a → $12
Cache read $/1M
n/a → $0.2
Context window
n/a → 1,048,576
Verify against the provider page

2026-02-17

claude-sonnet-4-6Anthropic
first observedunreconciled
Input $/1M
n/a → $3
Output $/1M
n/a → $15
Cache read $/1M
n/a → $0.3
Cache write $/1M
n/a → $3.75
Context window
n/a → 200,000
Verify against the provider page

2026-02-05

gpt-5-3-codexOpenAI
first observedunreconciled
Input $/1M
n/a → $1.75
Output $/1M
n/a → $14
Cache read $/1M
n/a → $0.175
Context window
n/a → 400,000
Verify against the provider page

2026-01-29

kimi-k2-5Moonshot AI
catalog agrees
Input $/1M
$0 → $0.6
Output $/1M
$0 → $3
Cache read $/1M
$0 → $0.1
Cache write $/1M
$0 → n/a
Verify against the provider page
devstral-2Mistral
catalog agrees
Input $/1M
$0 → $0.4
Output $/1M
$0 → $2
Verify against the provider page

2026-01-27

kimi-k2-5Moonshot AI
first observedunreconciled
Input $/1M
n/a → $0
Output $/1M
n/a → $0
Cache read $/1M
n/a → $0
Cache write $/1M
n/a → $0
Context window
n/a → 262,144
Verify against the provider page

Method

Each snapshot is a committed JSON file recording what the source reported for every model in our catalog on that date, alongside our own maintained values. Git provides the dating and immutability; snapshots are never edited after the fact, and a run that observes no change writes nothing.

An aggregator is a change detector, not an authority. Every row links the provider page, because that is the only thing that settles whether a number is right.

FAQ

Where does this data come from?
A daily job records what models.dev — an MIT-licensed open database of AI models — reports for every model in our catalog, and commits the result as a dated JSON file. Each entry below is a diff between two of those files.
Does a change here mean a provider changed their price?
Not necessarily, and this is the important caveat. An entry means the observation moved. Aggregators misreport regions and pricing tiers: models.dev has quoted a non-Singapore tier for Qwen and a 1M context window for Claude Sonnet 4.5 that Anthropic scopes to 4.6 and later. Treat an entry as a prompt to read the provider page, which is linked on every row.
What does 'catalog agrees' mean?
That our own maintained catalog already matches the new observation, so we are not behind. When it says otherwise, either the vendor moved and we have not caught up, or the aggregator is wrong — resolving which is a manual step against the provider's page.
Why do some rows say the pin is unstable?
A few models have no dated identifier at the catalog's price, so they are pinned to a '-latest' alias. Those aliases move when the vendor rotates what 'latest' means, which can look like a price change without one having happened.
How far back does this go?
Live observation began 2026-08-17 and accumulates forward. Earlier history, back to 2026-05-18, is reconstructed from models.dev's own git history — each entry dated by their commit, which is the source's own published record, copied with attribution. We never invent a date ourselves.

Next step

Prices move. Your context budget is yours to set.

Tracking provider pricing is worth doing, and it is the variable you control least. The audit works on the one you control most.

Audit my instructions