AI DevelopmentPricing Tracker10 min readPublished October 28, 2026

AI API Price Changes: 680 Routes Checked Over Two Days

We compared 680 OpenRouter routes across 26–28 October: 24 pricing records changed. Explore every change, alias caveats and downloadable reproducible data.

DA
Digital Applied Team
Research and practical analysis
PublishedOctober 28, 2026
Read time10 min
SourcesPrimary documentation

We compared two complete OpenRouter catalogue captures from 26 and 28 October 2026. Of the 680 route IDs present in both, 24 had a changed pricing object and 656 did not. Six of the changed records were floating aliases. This is a small, reproducible observation of catalogue movement, not evidence that 24 model vendors changed their prices.

The distinction matters because a route can change its provider mix, expose a new cache field or point at a different model. The Terra alias, for example, moved from GPT-5.6 Terra to GPT-6.1 Terra. Counting that as a price cut on an unchanged model would misdescribe the event. Other records showed input and output rates moving in opposite directions, making a single “cheaper” label depend on the workload.

The complete 24-record change table, paired source extract and reproduction script are below. We kept increases, decreases, aliases and missing fields so another reader can reproduce the result or challenge the interpretation. No inference requests or paid model calls were made for this study.

Key takeaways
  1. 01
    24 of 680 matched pricing objects changed.The other 656 matched records were unchanged. Added and absent routes are a separate population.
  2. 02
    Six changed records were floating aliases.Aliases are routing identities, not six additional independent models; one changed its target.
  3. 03
    Input and output can move in different directions.The effect on a bill depends on token mix, caching, tools and the selected provider.
  4. 04
    The evidence is downloadable.Use the full changed-record table, paired JSON and local reproduction script, with the capture dates attached.

01 — Observed changeA stable catalogue can still contain material movement

The first capture contains 690 unique routes and the second 692. That small net increase hides twelve additions and ten absences. The overlap is 680 routes, which is the population used for the paired pricing comparison. Joining on exact identifiers prevents a newly listed route from being treated as though it had a historical price in the earlier capture.

Among those matched routes, 24 complete pricing objects changed, equivalent to approximately 3.53% of the matched population. This is our arithmetic on the saved data. It is not the percentage of AI models that repriced globally, and it is not weighted by requests, token volume or revenue. A rarely used route counts once, just as a popular route does.

The unchanged records matter. Without the denominator, a list of two dozen changes could imply that the entire market moved. Without the changed rows, a statement that most records were stable could hide material differences for an application using one of them. The useful result is both: the matched population was mostly stable, while particular route quotes changed enough to warrant checking the actual workload.

Matched population
Exact route IDs
680

Only routes present in both captures enter the paired comparison.

Original catalogue count
Changed objects
Complete pricing records
24

Includes cache-field and nested-tier changes, not only headline input/output rates.

All changes retained

02 — ReproductionHow the comparison was collected

The source is the OpenRouter all-modality models endpoint. We use all output modalities because a text-only view would omit parts of the catalogue and distort route counts. The response metadata reported a total count matching the returned records and no next-page link at both captures. These checks establish the scope of the saved responses, not a guarantee that the catalogue covers every available AI model.

The comparison joins exact route IDs, then compares the complete nested pricing object. It preserves fields that were added or removed rather than converting absence into zero. Alias targets are retained as a separate field so a change in the thing being routed to can be identified. Descriptions and benchmark claims are unnecessary for this calculation and are excluded from the public extract.

The reproducible unit is a route record. Batch variants, free variants and floating aliases remain distinct because that is how the API exposes them. This choice is deliberate and limits the conclusion: route counts are not model counts. A researcher interested in unique underlying models would need a separate, documented deduplication method rather than simply deleting similar-looking names.

Methodology

Original comparison of two saved public catalogue responses; no model calls or direct-provider price verification.

Collection
All-output-modality OpenRouter API responses saved at 2026-10-26T15:01:06Z and 2026-10-28T11:12:58Z. Both responses reported complete pagination with no next page.
As-of date
28 October 2026, compared with 26 October. The 24-row table contains every changed pricing object among the 680 exact route IDs present in both captures.
Units
Displayed scalar token rates are USD per million tokens. Raw nested pricing and provider-specific units remain in the paired JSON; no universal media-cost conversion is applied.
Matching
Join on exact route ID. Retain aliases and batch/free variants as separate routes; report alias-target changes separately. Compare complete pricing objects, including missing fields and overrides.
Exclusions
Twelve added and ten absent routes are excluded from matched price-change calculations. Seven matched base-input fields have missing or negative-sentinel values and are excluded from directional numeric comparison.
Limitations
Catalogue quotes can reflect provider routing, availability and metadata. They are not transaction prices, independent models, a market-weighted index or proof of a direct-vendor price change.
Refresh
This is a fixed two-capture study. Future observations should be labelled separately; do not overwrite its historical inputs.

03 — Full evidenceEvery changed pricing record is included

The table shows the 26 October value followed by the 28 October value. Scalar input, output and cache-read fields are converted from dollars per token to dollars per million tokens. A dash means the field was not present; it does not mean free caching or unsupported caching. The JSON retains the complete original pricing objects, including the Terra alias's cache-write and long-context override changes.

The displayed table is the full set of 24 changed pricing records, not a selection of the most dramatic examples. Eighteen are non-alias routes and six are floating aliases. The surrounding catalogue contains other routes with unchanged prices, as well as the separately listed additions and absences. Those inputs remain in the paired extract for readers who want to use a different definition of change.

Do not read a route's displayed scalar as a promise about every provider or request. Long-context tiers, media units and routing choices can affect what is charged. The table answers a narrower question: what did these saved public records say at two specified times? That is a useful evidence trail for a pricing discussion, provided the date and the route-level scope stay attached.

RouteInput: before → afterOutput: before → afterCache read: before → afterRecord type
cloudflare/clef-flash$0.019 → $0.038$0 → $0— → —Route
deepseek/deepseek-v4-flash-0731$0.04444 → $0.119$0.13332 → $0.238$0.001414 → $0.0238Route
deepseek/deepseek-v4-pro$0.780738 → $0.95526$1.561476 → $1.91052$0.0650615 → $0.079605Route
deepseek/deepseek-v4.1-flash$0.02 → $0.14$1 → $0.42$0.015 → $0.0042Route
google/gemma-3-4b-it$0.04 → $0.05$0.05 → $0.1$0.02 → —Route
meta-llama/llama-3.1-8b-instruct$0.05 → $0.02$0.08 → $0.04$0.025 → —Route
moonshotai/kimi-k3$0.17 → $0.169$20 → $20$0.16 → $0.159Route
nace-ai/drex-max$0.06 → $0.06$0 → $0— → $0.06Route
nousresearch/hermes-4-405b$1 → $1$3 → $3— → $0.2Route
nvidia/nemotron-3-nano-30b-a3b$0.06 → $0.06$0.24 → $0.24— → $0.012Route
qwen/qwen3-30b-a3b-instruct-2507$0.1 → $0.1$0.3 → $0.3— → $0.1Route
qwen/qwen3.5-27b$0.27 → $0.26$2.16 → $2.6$0.27 → —Route
qwen/qwen3.6-27b$0.32 → $0.45$3.2 → $2.7— → —Route
qwen/qwen3.6-35b-a3b$0.1 → $0.1$0.95 → $0.9$0.05 → $0.025Route
qwen/qwen3.8-27b$0.2 → $0.039$2.5 → $1.25$0.09 → $0.0039Route
xiaomi/mimo-v2.5$0.119 → $0.4$0.238 → $2$0.00255 → $0.08Route
xiaomi/mimo-v2.5-pro$0.3045 → $0.48$0.609 → $1.8$0.0028 → $0.096Route
z-ai/glm-5.2$0.0341 → $0.014$7 → $7$0.033 → $0.013Route
~deepseek/deepseek-flash-latest$0.02 → $0.0126$1 → $1.8$0.015 → $0.0125Alias; target unchanged
~deepseek/deepseek-pro-latest$0.1188 → $0.2542$8 → $8$0.12 → $0.25Alias; target unchanged
~deepseek/deepseek-v4-flash-latest$0.0422 → $0.0475$0.1694 → $0.1568$0.028 → $0.028Alias; target unchanged
~moonshotai/kimi-latest$0.1615 → $0.169$9.3421 → $20$0.16 → $0.159Alias; target unchanged
~openai/gpt-terra-latest$2 → $1$12 → $5$0.2 → $0.05Alias target changed; write/tiers also changed
~z-ai/glm-flash-latest$0.0413 → $0.0197$0.0758 → $0.1238$0.03 → $0.0197Alias; target unchanged

Complete changed-price set: 24 route records. USD per million tokens for the displayed scalar fields; 26 October → 28 October 2026. Missing values are —. Nested pricing and alias targets are preserved in the downloads.

04 — Mixed movementA higher input rate can still mean a lower bill

Within the 24 changed pricing records, eleven base input rates increased, eight decreased and five stayed the same while another pricing field changed. The chart reports those counts, including aliases. Across all 680 matched routes, 654 numeric base input rates were unchanged and seven were not comparable because of missing or negative-sentinel values. Those are different denominators and should not be interchanged.

DeepSeek V4.1 Flash illustrates why direction depends on the request. Its displayed input rate moved from $0.02 to $0.14 per million, while output moved from $1 to $0.42. A hypothetical request with 10,000 uncached input tokens and 2,000 output tokens therefore moves from $0.0022 to $0.00224 before other charges. A large percentage increase in the small input price does not translate into the same percentage increase in that example's total.

Change the token mix and the conclusion changes. At 10,000 input and 10,000 output tokens, the same calculation moves from $0.0102 to $0.0056. These are workload illustrations using catalogue quotes, not measured transactions or quality-equivalent task comparisons. They show why an operator should replay its own usage distribution through both price sets rather than label the model cheaper or dearer from one column.

Base input direction within the 24 changed pricing records

Digital Applied comparison of saved OpenRouter captures, 26–28 October 2026; aliases included.
Input rate increased
11 routes
Input rate decreased
8 routes
Input unchanged; another price field changed
5 routes

05 — Identity changesA floating name can change the thing being priced

The clearest identity event in this comparison is the Terra alias. Its target changes from GPT-5.6 Terra to GPT-6.1 Terra, while its pricing object also changes. A reader looking only at the input and output columns could mistake that for a discount on the same model. The saved target fields show that it is also a routing change to a newer model.

The other five changed aliases retain the same recorded target across these captures, yet their quotes move. That observation does not identify the underlying cause. An aggregator may reflect different provider availability or other catalogue metadata, and the captured records do not prove a first-party repricing announcement. Preserve that uncertainty rather than filling it with a market narrative.

For a production application, the operational response is to record exact routes and resolved targets when available. If following an alias is intentional, define which changes require renewed evaluation. A lower quote is not enough to prove that quality, tool support and behaviour stayed constant. The same principle applies to comparisons published elsewhere: route identity belongs next to the number because it determines what the number describes.

Alias finding

One of the six changed alias records also changed its model target. The price comparison is therefore partly an identity comparison; it must not be presented as six independent vendor price cuts.

06 — Cache fieldsAn absent value is useful evidence too

Several changed records concern cache-read metadata. Some gain a field, while others lose one. Treating a missing field as zero would manufacture a discount; treating it as proof that caching is unavailable would manufacture a capability claim. The safe interpretation is that the field was absent from that saved catalogue record.

This matters when estimating repeated agent workloads. An application with a stable instruction prefix may depend on cache behaviour, but a catalogue quote alone does not establish whether the application's requests actually qualify for caching. The relevant provider route, retention period and request structure still need checking. A spreadsheet that assumes a cache hit on every request can understate the bill even when the listed rate is correct.

Keep the missingness in the data and surface it in any downstream analysis. Our CSV uses blank cells for absent scalar values and the page shows a dash. The paired JSON distinguishes the full before and after objects. A researcher can choose a documented imputation rule for a different study, but that rule should remain visible rather than being silently applied to the primary observations.

Missing is not zero

A blank cache field means the captured record did not supply that value. It is neither a free-cache price nor proof that the provider cannot cache the request.

07 — Budget applicationTurn the snapshot into a workload check

Start with the routes the application actually uses, then inspect the selected provider and current contract. Multiply observed input, output and cache usage by the relevant price categories, preserving thresholds and tool charges. Compare the resulting task cost with the current budget. Do not use an unweighted average over the catalogue as a forecast for a workload concentrated on a few models.

Keep quality separate from the price calculation. Moving to a cheaper route can change the number of attempts, reasoning tokens or human corrections needed to finish a task. A price-only replay tells you what the same recorded usage would cost; it does not prove that another model or provider would produce the same usage or accepted result. That distinction is particularly important for aliases whose target changes.

The paired data is also useful for monitoring the reliability of a pricing reference. A maintained price table can drift even when there is no prominent launch announcement. This study does not create an automatic monitoring job or promise a particular refresh schedule. It provides one documented example of the kind of change a reference owner should preserve and verify before making a public comparison.

Reader taskUse the evidence this way
Check a budgetReprice the actual workload, including token mix and cache conditions
Write about a model priceVerify the direct vendor and exact route before attributing a cut
Compare releasesSeparate a new alias target from a price move on the same model
Maintain a referenceRetain dated captures and missing fields so changes can be audited

Suggested uses of this fixed historical study. None turns catalogue observations into provider billing guarantees.

08 — Source packageReproduce the result without a model call

Download the paired snapshots and the Python script into the same local directory, then run the script with Python 3. It reads the saved files and writes a comparison JSON and CSV; it makes no network requests and sends no prompts to a model. Decimal arithmetic is used for token-price conversion so small prices are not silently rounded into zero.

The public extract includes all routes from both captures, with route ID, pricing, alias target and modality fields. Metadata retains capture timestamps, source URL and the original response hashes. It is a field-preserving extract for this study, not a byte-for-byte copy of the original response; the original-response hash therefore should not be mistaken for a hash of the smaller downloadable file.

Use the result with its boundaries intact. This is a two-capture study over about two calendar days, not a measure of intraday volatility or a long-term trend. A price may have changed between captures and returned to its earlier value without appearing here. The evidence supports the observed endpoints and the exact changed-record set. It does not support a story about everything that happened between them.

Download the 24-row CSV, paired source extract, complete comparison JSON and reproduction script. Run python3 reproduce.py beside the paired JSON.

Your next move

Keep the route, date and workload beside every price claim.

The paired captures reveal specific movement inside a mostly unchanged matched catalogue. Their value is the audit trail: all changed records, clear alias handling, preserved missing values and reproducible arithmetic. Use that evidence to check a route or a budget, while verifying the provider contract before treating a quote as a bill.

From evaluation to implementation

Build AI around a measurable outcome.

Digital Applied helps teams evaluate models, design reliable workflows and turn useful experiments into production systems.

Task-specific evaluationsPractical integrationClear success criteria
A useful starting point

Bring one workflow

  • →The task and its current cost
  • →Examples of acceptable results
  • →The systems an agent may change
Practical questions
No. Twenty-four matched OpenRouter route records had different pricing objects. Some are aliases, and the captures do not establish the reason for every change or a first-party vendor announcement.
Digital Applied newsletter

Deep dives on AI, marketing and development.

Practical guides and fresh insights by email. No recycled takes.

Related dispatches

Keep exploring practical AI decisions.

AI Development

Chinese AI Models Lead Reported OpenRouter Token Usage

Chinese models reached 57–67% of OpenRouter tokens in reported regional groups. What CNBC’s September figures measure, their limits and what buyers can learn.

September 26, 2026 · 7 minRead
AI Development

Where to Actually Run Kimi, GLM, DeepSeek and Qwen

A provider census of open-weight model hosting. The same model name arrives at different quantizations and context limits, with wide price and speed spreads.

August 31, 2026 · 12 minRead
AI Development

What an OpenRouter Usage Chart Can and Cannot Show You

OpenRouter documents what its rankings count and what they exclude. A source-pinned inventory of what a usage chart measures, and what it cannot tell you.

August 26, 2026 · 18 minRead
AI Development

Ox Alpha Was GLM-5.3-Flash All Along: What Changes

Z.ai named its stealth model on August 26 and shipped MIT weights the same day. What the identity actually changes for an endpoint already in production.

August 26, 2026 · 14 minRead
AI Development

Model Aliases and Retirements in 2026: The Full Ledger

Twenty-five floating aliases across five vendor surfaces and 92 dated 2026 model-ID retirements, with notice periods computed from each vendor's own dates.

August 22, 2026 · 20 minRead
AI Development

OpenRouter Stealth Models: Who They Turned Out to Be

A dated census of 14 OpenRouter stealth listings since 2025: seven officially revealed, four reported only, two unresolved, and Ox Alpha still open.

August 22, 2026 · 20 minRead
Google Search

See more Digital Applied analysis in your Google results by adding us as a preferred source.

Add as a preferred source