LLM Prompt Caching Compared: We Tested 8 Endpoints

We measured prompt caching on 8 LLM endpoints on 2026-07-28: DeepSeek hit 98% for an 88% input-cost cut, GLM-5 saved 75%, and one router lost the discount.

Fan Chuanyu's profile

Written by Fan Chuanyu

7 min read

Prompt caching cut DeepSeek's input cost 88% and its latency from 1.43s to 0.90s in our 2026-07-28 test, but the same discount vanished through a router while GLM-5 and MiniMax kept theirs.

Prompt caching is a server-side billing and latency optimization that reuses the computed state of a repeated prompt prefix instead of paying to process it again. Vendors document it well. What nobody publishes is what happens on the second call, on the endpoint you actually call, in the usage fields the API returns. So we ran it.

What we measured (verified 2026-07)

We sent the same fixed ~1800-token prefix, a fictional API changelog, two or three times to each of eight endpoints on 2026-07-28. Calls went out two seconds apart with a different one-line question each time, temperature 0, max_tokens 40. All 17 calls succeeded.

Cache behavior was read from each API's own usage object, never inferred. DeepSeek native reports prompt_cache_hit_tokens and prompt_cache_miss_tokens. The routed path reports prompt_tokens_details.cached_tokens plus a billed usage.cost figure. Total routed spend for the whole run was $0.051.

One disclosure that governs every number below: DeepSeek V4-Flash was measured natively on api.deepseek.com, and all seven other endpoints were measured through an OpenRouter-routed path. Native re-verification for the routed models is still pending. This is a single-region snapshot, not a continuous monitor.

The second caveat matters even more. This design fires identical requests back to back with no cache markers attached, so it measures implicit (automatic) caching only. Any provider whose cache requires an explicit marker is expected to report zero cached tokens here. That is a finding about default behavior, never a claim that caching is unsupported.

The 8-endpoint results matrix

EndpointRepeat-call cached tokensBilled change on repeatVerdict
DeepSeek V4-Flash (native)3328 of 3403 (98%)input cost computed at official rates: $0.000476 to $0.0000571 (-88%)implicit cache HIT, explicit hit/miss fields, latency 1.43s to 0.90s, third call hit again (3328)
DeepSeek (routed)0$0.000698 to $0.000696 (none)cache lost through the router this run, full price twice
GLM-5 (routed)3200 of 3284$0.002388 to $0.000596 (-75%)implicit cache survived routing, discount visible in billing
MiniMax-M2.5 (routed)3296 of 3316$0.000530 to $0.000204 (-62%)implicit cache survived routing
Qwen3-235B (routed)0$0.000726 to $0.000331NOT cache evidence: provider-price variance, see the note below
Kimi K2 (routed)0$0.001901 to $0.001897 (none)no implicit cache visible via this route
GPT-4o (routed)0$0.00841 to $0.00840 (none)no cache visible via this route; OpenAI documents automatic caching on its own API
Claude Sonnet 4.6 (routed)0$0.01207 to $0.01201 (none)expected by design, Anthropic caching needs explicit markers our test never sends

Three findings come out of that table, and the second and third of them contradict each other in a way most caching write-ups quietly avoid.

Finding 1: DeepSeek's native cache is the largest effect we measured

On the repeat call, DeepSeek V4-Flash reported 3328 of 3403 prompt tokens as cache hits and only 75 as misses, a 98% hit rate on a prefix that had been seen once, two seconds earlier. The third call hit 3328 again. Latency fell from 1.43s to 0.90s.

The cost side is arithmetic, not a bill. Applying the measured hit and miss split at DeepSeek's official rates gives $0.000476 for the cold call and $0.0000571 for the warm one, an 88% input-cost reduction. According to DeepSeek's API documentation, cache-hit input tokens are priced at $0.014 per million against $0.14 per million on a miss, and the cache is applied automatically with no request-side flag. We compute those native figures at official rates, not from an invoice, because the native API returns no per-call cost field.

Finding 2: routing discarded the discount on this run

The same DeepSeek model family, called through the router in the same run, returned zero cached tokens on both calls and billed $0.000698 then $0.000696. Nothing was saved. Set the two paths side by side and the native repeat call cost roughly one twelfth of the routed repeat call on input.

That gap is big enough to change an architecture decision for a high-volume RAG or agent workload with a heavy fixed system prompt. It is also a snapshot: routing topologies change, and a different upstream provider may behave differently on another day.

Finding 3: two providers' caches survived routing anyway

GLM-5 returned 3200 cached tokens of 3284 on its repeat call and its billed cost fell from $0.002388 to $0.000596, a 75% drop. MiniMax-M2.5 went from 32 cached tokens to 3296 of 3316, with billing down from $0.000530 to $0.000204, a 62% drop. Both discounts were visible in billing, through the router.

So "routers lose caching" is false as a blanket claim. Z.ai develops GLM-5 and MiniMax publishes MiniMax-M2.5, and both integrations passed cache state through to the billing layer while DeepSeek's did not on the same day. According to MiniMax's platform documentation, context caching is offered as a first-party feature, and our routed measurement is consistent with it working end to end. The lesson is per-provider verification, not a rule about routers.

The Qwen row is a pricing artifact, not a cache

Qwen3-235B reported zero cached tokens on both calls, yet billing dropped from $0.000726 to $0.000331. That is not a cache. Call B matches Qwen's list price, roughly $0.00032 computed for that token count, while call A billed about twice list. The delta tracks provider-price variance across the routed marketplace, where different upstream hosts of the same model charge different rates. We flag it because a careless reading of billed cost alone would have produced a fake 54% cache saving. According to Alibaba Cloud's Model Studio documentation, Qwen offers implicit context caching on its native endpoint, which our routed path could not demonstrate.

Implicit versus explicit: why Claude and GPT-4o show zeros

Anthropic's zero is the cleanest example of a design boundary rather than a product gap. According to Anthropic's prompt caching documentation, a request must carry a cache_control marker for caching to engage, cache reads bill at 0.1x the base input rate, and the default cache lifetime is five minutes. Our implicit-only test never sends that marker, so zero cached tokens on Claude Sonnet 4.6 is exactly the expected result.

OpenAI is different again. According to OpenAI's prompt caching guide, caching applies automatically to prompts of 1024 tokens or more on its own API. Our prefix clears that floor comfortably, yet the routed GPT-4o path reported nothing. We tested the route, not the vendor's own endpoint, and we say so rather than converting a routing observation into a vendor verdict. Moonshot AI builds Kimi K2 and documents managed context caching on its own platform; that also did not surface through the route.

Which endpoints deserve a cache-heavy workload

Nothing here is a quality claim. Caching changes input cost and latency only, and no output in this run was judged for accuracy. With that fixed, the ranked read across the cluster is:

  1. Largest verified saving, native only: DeepSeek. The 98% hit rate plus the published 10x cache-hit price gap is the strongest combination we measured, and it disappeared through the router. Call it directly.
  2. Safest through an aggregator: GLM-5 and MiniMax. Both kept a large discount routed, so a gateway-based stack does not automatically forfeit caching. Z.ai's GLM documentation carries current terms.
  3. Verify before you budget: Qwen and Kimi. Both document native caching, and neither demonstrated it on the routed path we tested.
  4. Requires code intent, not just repetition: Claude. Explicit markers are the entry fee.

The rule the matrix supports: never budget a caching discount from a vendor pricing page alone. Read cached_tokens or the hit and miss fields on your own second call, on the endpoint you will ship against. Two of our eight endpoints would be mispriced by trusting docs, and Qwen by trusting billed cost.

Explore the cluster

QuestionPage
What caching is and how prefixes matchWhat is prompt caching
DeepSeek's native cache, measuredDeepSeek context caching
Qwen's cache and the pricing artifactQwen context cache
Kimi's managed cache versus our routed zeroKimi context caching
Cache pricing across vendorsPrompt caching pricing comparison
What routing does to a discountOpenRouter prompt caching
ROI thresholds and break-evenIs prompt caching worth it
Reading and improving hit rateLLM cache hit rate
Caching against the fine-tuning alternativePrompt caching vs fine-tuning

For the DeepSeek price table itself, see our DeepSeek cache discount page.

FAQ

Does prompt caching make model output better? No. Caching affects input cost and latency only. We made no accuracy or quality comparison in this run, and none of these numbers should be read as a capability ranking.

Why did Claude and GPT-4o show zero cached tokens? Our test measures implicit caching only. Anthropic requires an explicit cache_control marker, which we never sent, and the OpenAI result came through a routed path rather than OpenAI's own API where automatic caching is documented.

Do routers always break caching? No. DeepSeek's cache was lost through the router on 2026-07-28, but GLM-5 kept a 75% billed discount and MiniMax-M2.5 kept 62% on the same route in the same run. It is provider-specific.

Was Qwen's cheaper second call a cache hit? No. Qwen reported zero cached tokens both times. Call B matched Qwen's list price while call A billed about twice list, so the difference tracks provider-price variance on the routed marketplace.

Are the DeepSeek native cost figures billed amounts? No. They are computed from the measured hit and miss token split at DeepSeek's official published rates. Routed cost figures are billed values returned by the API.

How long do these results stay valid? Treat them as a 2026-07-28 snapshot. Routing topologies, upstream providers and cache TTLs change, so we re-verify this cluster quarterly and flag native re-verification as still outstanding for the routed models.

Methodology and limits

Seventeen calls, eight endpoints, one fixed ~1800-token prefix, 2026-07-28, $0.051 of routed spend. DeepSeek native on api.deepseek.com; everything else OpenRouter-routed and pending native re-verification. Implicit caching only. Single region. Raw per-call usage objects are preserved in the cluster evidence artifact.

Last verified: 2026-07-28

Author: Kevin Fan, Customer Success Manager. Kevin evaluates Chinese LLM API pricing and performance for cross-border teams.

Share: