LLM price per token comparison, and the prices two sources could not agree on
Rates read 24 August 2026. The snapshot date applies to every figure on this page.
Nineteen models cleared a two source price check on 24 August 2026, and their input, cached read, cache write and output rates sit in the comparison table below. Three models did not clear it, because two independent public price sources published different input prices for the same first party model, and the widest of those gaps was 2x on GPT-5.6 Sol. Two more differed only because the two sources price different hosting routes. Four were carried by one source and not the other.
A single sourced rate table cannot tell you which of its numbers nobody checked. Every model checked here appears somewhere on this page with a price and a status, so you can see which figures are corroborated and which are one source talking.
Where published prices disagree
Each figure below is what that source published for that key at the moment it was read. Neither figure is asserted to be the price of the model. Where the two keys point at different routes, OpenRouter is pricing a reseller or host route while the registry prices the first party API, so the gap is a routing difference rather than a contradiction. Where both keys name the same first party model, a promotional window can reach one source before the other. OpenAI states that GPT-5.6 Sol's pricing is promotional and available at least through November 21, 2026.
A row counts as a disagreement only when both keys name the same first party model from the same vendor. The rule carried in the measurement file reads as follows.
A row counts as a disagreement ONLY when both keys name the same first party model from the same vendor. Where the two keys name different hosting routes, a price gap is a routing difference and is labelled as such, not counted as a disagreement. Where only one source carries a model, that is a coverage gap, not a disagreement.
Readings taken 24 August 2026 from the OpenRouter models API and the LiteLLM price registry, input price per 1M tokens.
Prices both sources agree on
Rates cover OpenAI, Anthropic and Google models in USD per 1M tokens, current generation first, read 24 August 2026. Each row links the vendor pricing page that lists the same model.
| Model | Input / 1M | Cached read / 1M | Cache write / 1M | Output / 1M | Vendor page |
|---|---|---|---|---|---|
| Claude Opus 5 | $5 | $0.5 | $6.25 | $25 | Anthropic |
| Claude Sonnet 5 | $2 | $0.2 | $2.5 | $10 | Anthropic |
| Claude Fable 5 | $10 | $1 | $12.5 | $50 | Anthropic |
| Gemini 3.6 Flash | $0.75 | $0.075 | not published | $3.75 | |
| Gemini 3.5 Flash-Lite | $0.3 | $0.03 | not published | $2.5 | |
| GPT-5.6 Terra † | $2 | $0.2 | $2.5 | $12 | OpenAI |
| GPT-5.6 Luna † | $0.2 | $0.02 | $0.25 | $1.2 | OpenAI |
| Claude Opus 4.8 | $5 | $0.5 | $6.25 | $25 | Anthropic |
| Claude Sonnet 4.5 | $3 | $0.3 | $3.75 | $15 | Anthropic |
| Claude Haiku 4.5 | $1 | $0.1 | $1.25 | $5 | Anthropic |
| GPT-5.5 † | $5 | $0.5 | no additional fee | $30 | OpenAI |
| GPT-5.4 † | $2.5 | $0.25 | no additional fee | $15 | OpenAI |
| GPT-5.4 mini | $0.75 | $0.075 | no additional fee | $4.5 | OpenAI |
| GPT-5.4 nano | $0.2 | $0.02 | no additional fee | $1.25 | OpenAI |
| GPT-4o | $2.5 | $1.25 | no additional fee | $10 | OpenAI |
| GPT-4o mini | $0.15 | $0.075 | no additional fee | $0.6 | OpenAI |
| Gemini 2.5 Pro † | $1.25 | $0.125 | not published | $10 | |
| Gemini 2.5 Flash | $0.3 | $0.03 | not published | $2.5 | |
| Gemini 2.5 Flash-Lite | $0.1 | $0.01 | not published | $0.4 |
† The vendor publishes a second, higher tier above a context threshold for this row. OpenAI's pricing page publishes a separate set of long context input, cached input, cache write and output figures alongside the short context figures, and the OpenAI rows here show the short context tier. Google's pricing page splits Gemini 2.5 Pro input and output pricing at a 200k token prompt threshold, and the Gemini 2.5 Pro row shows the rate below that threshold. Anthropic goes the other way and includes the full 1M token context window at standard pricing for Claude 4.6 and later models, so a 900k-token request is billed at the same per-token rate as a 9k-token request.
Read the cached read column against the input column. Across the current generation rows a cached read is priced at a tenth of that model's own input rate, on all three vendors, and the two GPT-4o rows are the exception at half. A ratio learned on GPT-4o misprices the rest of the table by five times, so check the row you are actually calling.
Every model this page checked appears on the page. The ones missing from the table above are priced in the disagreement section, each with the reason it could not be corroborated. Two families get a deeper page of their own, GPT-4o pricing per million tokens and Claude API pricing.
Price your own workload
The estimator divides characters by four, following Anthropic's rule of thumb that 1 token is approximately 4 characters or 0.75 words in English, and that the exact count varies by language and content type. Treat the result as an estimate rather than a tokenizer exact count, and remember that Claude 4.7 and later changed tokenizer. For an exact count, run the text through the KickLLM token counter.
OpenAI's Batch API applies a 50% cost discount compared to the synchronous APIs. Anthropic's Batch API allows asynchronous processing of large volumes of requests with a 50% discount on both input and output tokens. The Gemini API paid tier includes the Batch API at a 50% cost reduction. To size a queued job in detail, use the batch API savings calculator.
For Claude 4.6 and later models, Anthropic applies a 1.1x multiplier on all token pricing categories, including input tokens, output tokens, cache writes and cache reads, when US-only inference is specified through the inference_geo parameter. The toggle stays off for rows where no such rule is published.
Results are computed in your browser from the per token rates in the table above. No data leaves the page.
A worked example at one million tokens each way
One million input tokens and one million output tokens keep the arithmetic checkable, because the bill for each side lands on the per 1M rate itself. Add the two cells for the run total.
| Model | 1M input tokens | 1M output tokens | Vendor page |
|---|---|---|---|
| Claude Sonnet 5 | $2 | $10 | Anthropic |
| GPT-5.6 Luna | $0.2 | $1.2 | OpenAI |
| Gemini 2.5 Flash-Lite | $0.1 | $0.4 |
Cache activation minimums, the floor under every cached rate
A cached read rate only exists once the prompt clears the model's published minimum. Under it, the discount you planned for is not there.
| Models | Minimum cacheable prompt | Source |
|---|---|---|
| Claude Opus 5, Claude Fable 5 | Anthropic's minimum cacheable prompt length is 512 tokens for Claude Opus 5 and Claude Fable 5 | Anthropic |
| Claude Opus 4.8, Claude Sonnet 5, Claude Sonnet 4.5 | Anthropic's minimum cacheable prompt length is 1,024 tokens for Claude Opus 4.8, Claude Sonnet 5, Claude Sonnet 4.6 and Claude Sonnet 4.5 | Anthropic |
| Claude Haiku 4.5 | Anthropic's minimum cacheable prompt length is 4,096 tokens for Claude Haiku 4.5 | Anthropic |
| OpenAI models | OpenAI enables prompt caching automatically for prompts that are 1,024 tokens or longer, and states that the minimum cacheable prefix length varies by model and can range from 1,024 to 2,048 tokens, and that prompts just above 1,024 tokens may not be cached consistently | OpenAI |
| Gemini 3.6 Flash, Gemini 2.5 Flash, Gemini 2.5 Pro | Google states that the minimum input token count for context caching is 4,096 tokens for Gemini 3.7 Flash, Gemini 3.6 Flash and Gemini 3.5 Flash, and 2,048 tokens for Gemini 2.5 Flash and Gemini 2.5 Pro |
Anthropic states that prompts shorter than the per-model minimum cannot be cached even if marked with cache_control, and that no error is returned. So a prefix that caches on Sonnet 4.5 can sit under the Haiku 4.5 floor and bill at full input rate with nothing in the response to tell you. The calculator above refuses to apply a cached discount when the prompt sits under the published floor, which is why the number it shows sometimes goes up when you switch to a smaller model.
Getting a hit is a structural problem before it is a money problem. OpenAI states that cache hits are only possible for exact prefix matches within a prompt, and advises placing static content such as instructions and examples at the beginning of the prompt and variable content at the end, and that cache hits occur in increments of 128 tokens, so the number of cached tokens can be smaller than the full length of the shared prompt content. On lifetime, OpenAI's prompt_cache_options.ttl parameter sets the lifetime of all breakpoints written by a request, and its only supported value is 30m, which is also the default. Anthropic runs a different clock, where the cache has a 5-minute lifetime by default and is refreshed for no additional cost each time the cached content is used, and automatic caching uses a 5-minute TTL by default while a 1-hour TTL can be specified at 2x the base input token price. Google keeps it passive, stating that cost savings from context caching are passed on automatically when a request hits the cache, with nothing required to enable it.
On whether the write pays for itself, Anthropic prices a 5-minute cache write at 1.25x the base input price, a 1-hour cache write at 2x the base input price, and a cache read at 0.1x the base input price, and states that a cache hit costs 10% of the standard input price, which means caching pays off after one cache read for the 5-minute duration (1.25x write), or after two cache reads for the 1-hour duration (2x write). For a workload with an uneven hit rate, the prompt caching break even calculator takes the reuse count as an input rather than assuming one.
Modifiers that move the bill
The rates in the comparison table are the plain, uncached, synchronous ones. Published rules move them, and each rule is per model rather than per vendor.
- Cache writes on newer OpenAI models cost extra. OpenAI states that on GPT-5.6 models and later model families, cache writes are billed at 1.25x the uncached input token rate and reported in cache_write_tokens, while cache reads continue to be reported in cached_tokens. On the older families, OpenAI states that cache writes have no additional fee on models before the GPT-5.6 family, which is what the table cells say rather than a zero we invented.
- Data residency carries a surcharge. OpenAI charges a 10% uplift on regional processing (data residency) endpoints for models released on or after March 5, 2026, that are eligible for data residency.
- Modifiers combine. Anthropic states that its prompt-caching multipliers stack with other pricing modifiers, including the Batch API discount and data residency, so a cached, batched, US-only call is a chain of multipliers rather than a single discount.
- Token counts themselves moved. Anthropic states that Claude 4.7 and later models use a newer tokenizer that produces approximately 30% more tokens for the same text, and that Claude Sonnet 4.6 and earlier models use the previous tokenizer. A per token rate comparison and a per request bill comparison are not the same exercise, and this is the reason.
- Queued work halves. The batch discount is published by all three vendors on this page, linked at the toggle above, and the OpenAI batch API walkthrough covers the request lifecycle rather than the price.
How we measured this
Two public price sources are read in the same run, seconds apart. One is the OpenRouter models API at openrouter.ai/api/v1/models. The other is the LiteLLM price registry, the community maintained JSON at model_prices_and_context_window.json.
A model reaches the comparison table only when every price kind declared for it matches across both sources within one percent. A kind that only one source publishes is not declared, so it is neither compared nor printed. Each value also has to fall inside a sane range for its kind; anything outside is held rather than shown. Prices arrive as USD per token and are converted for reading by multiplying by one million, which is the only arithmetic between the source and the cell.
Whatever fails that check is not deleted, it is published in the disagreement section with both readings, the exact key compared on each side, and the gap. The build date stamp sits at the top of the page. Fetch the same two URLs and you should land on the same answer, or on a newer one if a vendor has moved since.
Two questions readers send in
Which model here costs least per token?
On the corroborated table, Gemini 2.5 Flash-Lite carries the lowest published input rate at $0.1 per 1M tokens and the lowest output rate at $0.4 per 1M, with GPT-5.6 Luna next on both at $0.2 and $1.2. Both figures are visible in the rows above and both link the vendor page. Bear in mind that the same text does not turn into the same number of tokens on every model, per the tokenizer note above.
Why is the model I use missing from the comparison table?
Because it did not clear the two source check on the build date. Look in the disagreement section, where it is priced with both readings side by side, the keys named, and the reason. Grok 3 and Grok 4 sit there as single source readings, Llama 3.3 70B and Mistral Large as route mismatches, and GPT-5.6 Sol, Gemini 3.7 Flash and DeepSeek Chat as genuine same model disagreements. Planning a move off hosted APIs entirely instead, the self host versus API break even calculator works the other side of that decision.
Before you commit spend
Prices are snapshots and change without notice. Verify on the provider official pricing page before committing spend.
All calculator outputs are estimates. Real bills depend on usage mix, caching, batching, and rate limits.
KickLLM is not affiliated with OpenAI, Anthropic, Google, Meta, Mistral, or any model provider.