GPT-5.6 changed prompt caching — SDK defaults now get 0% prefix hits. We restore 97.8%.

AI COST OPTIMIZATION

Your cache goes cold.
Your bill goes 10×.

Providers discount repeated prompts by 90% — while the cache stays warm. Caching.ai is a drop-in proxy that keeps it warm, so the discount actually lands on your bill. One base-URL swap.

One base-URL swap · Runs on your own provider keys · Prompts are never stored · Save nothing, pay nothing

Your cache goes cold. Your bill goes 10×.
WORKS WITH YOUR EXISTING STACK
AnthropicOpenAIGeminiGrok

THE PROBLEM

You're paying full price for prompts your provider already discounts.

Anthropic, OpenAI, Gemini, and Grok all serve repeated prompt prefixes from cache at a fraction of list price. But that discount only shows up if the cache actually gets hit — and in real traffic, it quietly fails far more than teams expect.

5 min
cache lifetime

One short idle gap between requests and the cache expires — the next call pays full price again.

10×
cost of a miss

A cached token costs a tenth of a fresh one. Every miss on a repeatable prompt is money left on the table.

30–60%
of typical bills

The share of spend teams can recover just by keeping their cache healthy — no model or code changes.

The life of a cache, in one line
≈5 idle minutes
caching.ai keeps this stretch warm, so the 10% price keeps applying

warm — every repeat reads at ~10% of input pricecold — you silently pay 100% again

We make every miss visible, then eliminate the ones that shouldn't happen.

MEASURED, NOT PROMISED

Up to 90% cheaper than calling direct. Proven on the bill.

10,000+ real, billed API calls — the same workloads run direct, hand-tuned, and through caching.ai. Every cost is the provider's own usage numbers at public list prices, and the method, harness, and raw logs are all open source.

Support traffic with 6–9 minute idle gaps · 12 calls · claude-haiku-4.5

Direct call (SDK defaults)100%
DIY hand-tuning — without caching.ai125%

what doing it by hand looks like: the cache expires in every gap, so the write premium makes it pricier than doing nothing

caching.ai33%

the Cache Warmer held the cache warm through every gap — every ping included in the number

100% = what the direct call paid. Mean of 3 independent runs.

67%
saved on sparse traffic

Support-style conversations with idle gaps longer than the cache TTL — net of all warming pings.

89%
saved on a 300-call batch

Classification batch with a shared prefix, vs the same batch with SDK defaults.

90%
saved on GPT-5.6

The 5.6 generation dropped cross-request prefix caching for plain SDK traffic (0% hits) — the proxy restores it: 97.8% hit rate on steady traffic.

Faster, not slower

A proxy hop sounds like added latency. Measured, it is the opposite: a cache hit skips the prompt prefill, so first tokens arrive sooner — and the hop itself was smaller than provider noise.

time to first token — typical (p50)
direct
865 ms
caching.ai
597 ms
time to first token — worst spikes (p95)
direct
2,067 ms
caching.ai
755 ms

gpt-4o, sparse support traffic (S2), provider-reported timing. Lower is better.

Every number above comes from real, billed API calls — method, fixtures, and raw logs are public, and you can rerun the whole benchmark with your own keys. Where a provider already caches well on its own, the proxy simply passes your traffic through at zero overhead.

2026-07 runs · 10,000+ calls · $80+ at list prices · Anthropic cells: 3 runs each · raw logs public

The economics of warming

Warming a cache on purpose? The math says it's cheaper.

"While I'm working the cache stays alive anyway, and if I leave I just let it die — right?" The better you know cache pricing, the fairer that question. But traffic with 6–50 minute call gaps — support bots, Slack bots, pipelines, agents waiting on human approval — structurally expires a 5-minute cache every single time. And rebuilding costs 1.25× list price while reading a live cache costs 0.1×: one rebuild = 11.5 warming pings.

First request (cache write)Inside the 5-min band — hit 0.1×Outside the band — expired, re-buy 1.25×Warming ping 0.1×
Warming off5 re-buys (1.25× each)Warming onAll hits · 10 pings (0.1× each)0m60m

Sixty minutes of calls ~10 minutes apart — the same shape as the benchmark's sparse-support scenario. Each dot is a request; the band behind it is the 5-minute cache lifetime.

Break-even: 52 minutes

For any absence under 52 minutes, warming always wins. Past that point (~62.5 min after your last request) warming stops itself — not a cent is spent outside the profitable window.

Past 90 minutes, switch strategies

Long holds skip the 4-minute pings: the context is rewritten once as a 1-hour cache entry, cutting hourly upkeep 12×. The upgrade runs only after the old entry has expired — no overlapping spend.

Your real requests are untouched

Your requests always go out with their original cache markers. The pricier 1-hour write is attached to warming pings only, and a per-org daily budget cap quietly stops everything past its limit.

The 67% saving in the benchmark above is exactly that middle-zone traffic (support calls 6–9 minutes apart) — on the same traffic, caching without warming lost 25%. Conversely, leaving for hours? Letting the cache expire is cheaper, and in that window we stop first. Warming isn't a trick: it's cost engineering that computes the break-even and spends only when it wins.

WHO IT'S FOR

Built for teams whose AI bill keeps climbing

AI product teams

Long system prompts, RAG context, tool definitions — the same thousands of tokens resent on every request. That's exactly what caching is for, and exactly what breaks quietly.

  • Chatbots & copilots with heavy system prompts
  • RAG apps rebuilding identical context
  • Multi-tenant SaaS with shared prompt scaffolding

Agent fleet operators

Coding agents and automation fleets idle between tasks — just long enough for the cache to expire before the next burst. The Cache Warmer closes that gap.

  • Coding agents (Claude Code, custom harnesses)
  • Batch pipelines with think-time gaps
  • Overnight autonomous runs

Engineering leaders

You own the AI line item but the invoice hides everything. Get per-model hit rates, verified savings, and the waste number nobody else reports.

  • One dashboard across Anthropic, OpenAI, Gemini
  • Estimated waste — the metric invoices hide
  • Weekly savings report in your inbox

THE PRODUCT

Four ways we cut your bill

$412saved
$88wasted
7dhit 72% ↑
Cache Analytics

See what the cache actually saved you

Finally see the number your invoice hides: how much of your spend the cache actually absorbed — and how much it should have.

  • Real hit rate per model and per key, from live traffic
  • Verified savings vs. list price, plus estimated waste from misses
  • Token counts only — prompt and response bodies are never stored
BREAKER DETECTEDLikely cause: timestamp in prompt
Cache Guard

Find and fix what breaks your cache

Most cache failures are self-inflicted: a timestamp, a random ID, a reordered tool list. Guard finds them and fixes what can be fixed automatically.

  • Auto cache_control injection for requests that have none (Anthropic)
  • Prefix-stability detection across all four providers
  • A dashboard warning with the likely root cause, not just a symptom
Cache Warmer

Keep the cache warm between calls

Anthropic caches expire after 5 idle minutes. Our engine sends tiny 1-token pings to keep your prefix warm exactly while it's economical — never longer, and only where our own benchmark proved pings pay off.

  • Pings cost ~0.1× of a cache rewrite — profitable up to 62.5 minutes of idle
  • Hard daily budget per key; every ping is metered on your dashboard
  • Opt-in per key, prefix stored encrypted (AES-256-GCM)
  • Stepping away? Say “keep my cache warm for 2 hours” in chat — the proxy answers by itself (nothing reaches the AI), pre-warms the conversation you asked from, and holds it warm. Understood in 16 languages
  • On Claude Code, one plugin makes it fully automatic: every turn silently renews a 2-hour hold, so lunch never costs you a cold cache again
Auto-TuneCLOUD ONLY

Cache settings that tune themselves

Every key has a rhythm — how far apart its calls really arrive. Auto-Tune learns yours from live traffic and picks the cheapest cache settings for it, then keeps re-checking as your traffic changes.

  • Simulates your last 14 days of real call gaps against every cache option
  • Switches TTL and retention only when the math clearly favors it — with the evidence shown on the key
  • Every decision is logged: median gap, sample size, projected savings

HOW IT WORKS

One base URL. That's the integration.

Your app
caching.ai proxy
inject breakpointskeep warmmeter savingsflag breakers
Anthropic · OpenAI · Gemini · Grok

Zero code changes — one base-URL swap. Streams pass through byte-for-byte.

1

Point your SDK at us

Set your provider base URL to our proxy and swap in your Caching.ai key. No code changes.

2

We optimize every request

Usage is captured from the response stream, cache breakpoints are injected where they're missing, and breakers are flagged.

3

Watch the savings

Your dashboard shows hit rate, dollars saved, and dollars still being wasted — updated in real time.

# before
ANTHROPIC_BASE_URL=https://api.anthropic.com
 
# after — that's the whole migration
ANTHROPIC_BASE_URL=https://proxy.caching.ai
ANTHROPIC_API_KEY=ck_your_caching_ai_key

WHY US

Built for one job: your cache

Generic LLM gateways route and observe. Calling providers directly leaves the cache to luck. We do the one thing that moves the bill.

Direct to providerGeneric gatewayCaching.ai
See wasted spend, not just usage
Cache Warmer between calls
Cache-breaker detection with the root cause
Automatic cache_control / cache routing
Self-learning cache settings (Auto-Tune)
Pay only from verified savings

✓ included · △ partial · — not offered

OPEN SOURCE

The code is all public. Run it yourself, or let us run it for you.

Caching.ai's core is open source (Apache-2.0). Run the exact same proxy and console on your own infrastructure — or use the cloud and never think about servers.

Both, identical

  • Proxy, auto cache_control & cache warming
  • Cache-breaker detection & diagnostics
  • Dashboard & key console

Self-host

  • Free forever, on your infrastructure
  • One docker compose up
  • Ops, updates and backups are on you

Either way, prompt and response bodies are never stored.

DO THE MATH

What would a healthier hit rate save you?

TRUST & SECURITY

Your keys and prompts, handled like production secrets

Requests travel on YOUR provider keys, straight to the provider — we never resell models or sit on your data. Bodies pass through byte-for-byte and are never stored; what remains is numbers (token counts, latency, prefix hashes). Want zero third parties? Self-host the exact same code.

Caches can never mix between users

The cache itself lives at the provider, scoped to YOUR API key and account. We never cache responses ourselves or serve one user's cache to another — there is no shared cache to mix. It's open source: verify it in the code.

Your keys stay yours

Provider keys are encrypted at rest with AES-256-GCM, used only to forward your requests, and never logged.

Prompts are never stored

We keep token counts, latency, status codes, and prefix hashes — not your content. The one exception, the Cache Warmer, is opt-in and labeled right on the toggle.

Byte-identical passthrough

Responses stream through unbuffered, byte for byte. Your app sees exactly what the provider sent — analytics happen after the response is on its way.

Leave in one click

Delete your account yourself, anytime. Keys, stored prefixes, and your card are wiped immediately — no email ping-pong.

Every optimization is a switch

Cache injection, warming, TTL, retention — all per-key opt-ins you can flip off at any moment. Nothing is forced on your traffic.

PRICING

Pay only when you save.

THE PLAN

20% of your net savings

We measure your verified savings against list price, subtract every warming ping we spent on your behalf, and charge 20% of the remainder after the month closes. You keep 80% of money you were already spending.

FAIR BY DESIGN

Under $5? Waived.

Monthly fees under $5 are simply waived — never carried over. Save nothing, pay nothing. Your dashboard shows the exact running fee all month, so the invoice is never a surprise.

FAQ

Frequently asked questions

Do you store my prompts?

No. By default we store only token counts, model names, latency, status codes, and SHA-256 hashes of prefix blocks. The Cache Warmer is opt-in per key and stores an encrypted copy of your prompt prefix (AES-256-GCM) because re-sending it is how the cache stays warm — the trade-off is stated right on the toggle.

How does the proxy authenticate?

You bring your own provider API keys. They're encrypted at rest, used only to forward your requests, and never logged. Your apps call us with a Caching.ai key instead.

What's the latency overhead?

Streaming responses are piped through byte-for-byte with usage read on the fly — no buffering. Analytics writes happen after your response is already on its way.

Which providers are supported?

All four — analytics and cache-breaker detection everywhere, with optimization where it measurably pays: auto cache_control and the Cache Warmer on Anthropic, and on GPT-5.6+ an explicit cache breakpoint plus a stable prompt_cache_key that restore the prefix caching the new models no longer do on their own (measured 0% → 97.8% prefix hits on steady traffic — S6 cell of our published benchmark). OpenAI, Gemini, and Grok hold their caches upstream — we measured warming pings there and turned them off instead of billing you for them.

What does it cost?

Pricing is performance-based: 20% of what we verifiably save you, charged to your card after each month closes. Fees under $5 are waived. If we save you nothing, you pay nothing.

My provider already caches automatically — why do I need this?

Right — the discount exists. The problem is how often you actually get it. Caches expire after ~5 idle minutes, and a single changed character at the start of your prompt silently breaks them. We keep the cache alive, catch what breaks it, and show you the hit rate you're really getting — most teams find it's far lower than they assumed.

What is Auto-Tune?

It learns each key's real call rhythm — how far apart requests actually arrive — and picks the cheapest cache settings for it: the 5-minute vs 1-hour TTL on Anthropic. OpenAI, Gemini and Grok are managed automatically per model — nothing to configure. It only switches when the math clearly favors it, and shows you the evidence (median gap, sample size, projected savings) on the key.

What happens if Caching.ai is down?

Your requests do pass through us, so an outage on our side would fail your calls — and the fix is the same one-line change you made when you connected: point the base URL back at your provider and you're running direct again. No lock-in, nothing to migrate.

Caching.ai — Cut AI costs 90%