Skip to content

Build1 publisher3 min readPublished

Traffic past 15 requests a minute can route a prompt away from its cached prefix

OpenAI's guide prices reused input tokens at a discount of up to 90 percent. It also says cached key-value states sit on individual machines, so an unchanged prefix can still miss the cache when routing overflows.

The Engineer · Build desk

Illustration accompanying Traffic past 15 requests a minute can route a prompt away from its cached prefix

What happened

  • OpenAI's prompt caching guide documents a reduced cached-input rate for reused prefix tokens, discounted up to 90 percent, with caching enabled by default on supported models.
  • Agents API model calls share the Responses API caching behavior, and the guide states that maintaining a session does not guarantee a cache hit.
  • OpenAI ships a Prompt Caching Dashboard for monitoring cache read hit rates and a Prompt Cache Diagnostics tool for diagnosing misses.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost Since cache-write is not an additive fee, a miss bills the whole prefix at the uncached rate, and the loss recurs on every request that misses.
  • constraint Below 1,024 tokens on GPT-5.6 there is nothing to win by consolidating a short system prompt, so prefix work only pays on long shared context.
  • exposure One edit to a tool definition or developer message ahead of a breakpoint invalidates the cached prefix behind it, so a routine schema bump can drop hit rate across every caller the moment it deploys.
  • decision Picking explicit-only or implicit breakpoints is a choice about how many places a request can match, and implicit mode checks 22 more of them.

A cache hit depends on two things: the prefix you send, and the machine the request lands on. OpenAI's guide says cached states live on individual machines, and that a request can reuse a cached prefix only if it reaches a machine holding a matching entry that has not expired [14]. It also gives the rate at which that stops being dependable: traffic above 15 requests per minute, or one request every four seconds [15], can lead to overflow routing [14].

What is stored is the key-value state for the unchanged tokens at the start of the prompt, and the guide is explicit that the cache holds KV tensors, not the tokens themselves [6]. The rendered prefix includes OpenAI's own hidden instructions, developer messages, tool definitions, and conversation history carrying text, images, documents and supported audio [7]. All of it has to match. Change anything before a breakpoint and the prefix after that change cannot match the existing entry [8].

Lookup is a bounded search, longest prefix first, over the cache lookup boundaries present in the incoming request [19]. On GPT-5.6 and later, explicit-only mode checks the first 2 and the latest 50 explicit breakpoints [11]. Implicit mode checks those, plus the implicit breakpoint at the latest eligible user message, up to 20 earlier eligible message endings, and the endpoint of the initial consecutive block of developer messages [12]. Implicit mode therefore gives 22 more places to match, 74 against 52 [16].

Minimum cacheable prompt length is 1,024 tokens on GPT-5.6 and later, and varies by request settings on earlier models [10]. Tokens in OpenAI's hidden system content do not count toward that minimum [10]. A stable 700-token system prompt is not cacheable at all [17].

Agents API model calls use the same prompt-caching behavior as the Responses API [4]. The guide says reusing context within a session can preserve a shared prompt prefix, but "maintaining a session doesn't guarantee a cache hit" [4]. Two things a session does not control explain that: entry lifetime, which the guide says depends on the model [13], and which machine serves the request [14].

On the money, cache-write is not an additive fee, and each input token bills at the uncached-input, cached-input, or cache-write rate [5]. Reusing a prefix refreshes its lifetime without another cache-write charge [13]. The 90 percent is a ceiling on the discount [1], and the current cached-input and cache-write rates per model are on the API pricing page [5]. At that ceiling, a reused token costs a tenth of a fresh one [18].

The ceiling figure transfers to your workload only if the shared prefix clears 1,024 tokens, it renders identically every request, the entry is still alive, and the request reaches the machine holding it. Caching is on by default for supported models [2], so the discount you already have is also one you can lose without shipping a code change. The Prompt Caching Dashboard reports cache read hit rates, and the Prompt Cache Diagnostics tool is for diagnosing misses [3].

What to watch

  • Per-model cached-input and cache-write rates on the API pricing page, which would show how far below the 90 percent ceiling each model actually sits.
  • Whether OpenAI publishes concrete cache entry lifetimes per model; the guide currently says only that lifetime and retention depend on the model.
  • The session usage fields and subagent accounting the guide points to in Observability and usage. That is where a hit rate per agent run would come from.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories