Price per 1M logo

What changed in AI API pricing: the moves we detected

The changelog is a by-product of how this index is built: each refresh is diffed against the last, so price moves are recorded rather than remembered.

By Mohammad Ghonchegi, editor and maintainer·Published ·Updated ·2 min read

"Have prices gone up or down?" is the question this index was built to answer without anyone having to remember. Because every refresh is diffed against the previous snapshot, a price move is a logged event with an old value, a new value and a date — not a claim in a newsletter.

Across the period covered by the current changelog (tracking started 2026-09-13), the pipeline recorded 100 price movements on input, output or cached-input rates: 59 down, 41 up.

The cuts

Cuts cluster in two places: open-weight models that several platforms compete to host, and older tiers being repositioned after a newer model launches. Largest decreases logged:

ModelProviderRateBeforeAfterChange
GPT 4o Mini Audio PreviewAzure OpenAIinput$2.5$0.15-94.0%
GPT 4o Mini Audio PreviewAzure OpenAIoutput$10$0.6-94.0%
Gemini 2.5 FlashReplicateinput$2.5$0.3-88.0%
Meta.llama3 1 405b Instruct V1:0Amazon Bedrockoutput$16$2.4-85.0%
Us.meta.llama3 1 405b Instruct V1:0Amazon Bedrockoutput$16$2.4-85.0%
Amazon.titan Text Express V1Amazon Bedrockinput$1.3$0.2-84.6%
Largest logged price decreases

The increases

Increases are rarer and usually accompanied by a model or tier change, which is worth checking in the provider's own release notes before concluding that the market moved against you:

ModelProviderRateBeforeAfterChange
Gemini Flash LiteGoogle Geminioutput$0.4$2.5+525.0%
Deepseek V4 ProFireworks AIcached_input$0.145$0.6+313.8%
Gemini Flash LiteGoogle Geminiinput$0.1$0.3+200.0%
Gemini Flash LiteGoogle Geminicached_input$0.01$0.03+200.0%
Gemini FlashGoogle Geminiinput$0.3$0.75+150.0%
Largest logged price increases

How to read the direction of the market from this

  • Compare like with like. A cut on one model does not lower the cost of the model you use; check that model's own page and the changelog.
  • Watch cached rates separately. A cached-input reduction moves high-volume workloads far more than a headline input cut does.
  • Check retirement as well as price. A retired model is a forced migration, which is a cost event even when no rate changed.

Every individual diff from every refresh run, newest first.

Open the raw changelog

Frequently asked

› How are price changes detected?

Every refresh run fetches the upstream sources, normalises them and diffs the result against the previous snapshot. Any field that moved produces a changelog entry with the old value, the new value and the percentage change; nothing is inferred or back-filled.

› Do prices go up as often as they go down?

In the period this index has been tracking, 59 downward moves and 41 upward moves have been logged — the market cuts more often than it raises, but increases do happen, usually tied to a model tier change rather than a straightforward hike.

› Where can I see the raw log?

The changelog page lists every individual diff from every refresh run, unsummarised. The weekly reports aggregate the same data into a narrative per ISO week.

Where the numbers come from

The data pages this article draws on — check any figure against them, they are recomputed on every refresh.