developers.openai.com web signal

OpenAI Adds 12-Hour Prompt Cache TTL to API, 2.5x Write Cost

OpenAI Inference Agents ai-business

TL;DR

  • OpenAI's Responses API now accepts prompt_cache_options.ttl="12h", extending the default 30-minute cache so shared instructions and tool definitions survive gaps of hours.
  • 12-hour cache writes cost 2.5x the uncached input rate against 1.25x for 30-minute writes; reads stay at 0.1x (0.05x on GPT-6.1 Sol) regardless of lifetime.
  • Callers can mix both TTLs in one request via per-breakpoint overrides, with each token billed at the longest lifetime of the writes covering it.

OpenAI's October 20 changelog added a single new value to the Responses API: set `prompt_cache_options.ttl` to `"12h"` and the cache window stretches from the default thirty minutes to twelve hours. The company's phrasing is flat: "12-hour prompt caching keeps shared instructions, tools, and context cached longer to benefit from lower cached-input pricing, even when requests are hours apart."

The trade sits in the write surcharge. 12-hour cache writes cost 2.5x the uncached input-token rate, against 1.25x for the 30-minute default. Reads are unchanged on both lifetimes: 0.1x the ordinary input rate, or 0.05x on GPT-6.1 Sol. So the longer TTL only pays back when a cached block gets reused enough times to amortise the heavier write.

The two TTLs can be combined inside one request. The caching guide specifies that "each token is billed once at the longest lifetime of the selected writes covering it," and callers can set `prompt_cache_breakpoint.ttl` to override the request-level default on an individual breakpoint. OpenAI's documented split is terse: 12-hour for "stable instructions or reference material reused across longer gaps," 30-minute for "conversations and agent steps that reuse context frequently."

One footnote worth catching for anyone treating cache TTL as a retention control: the guide states that "'12h' does not set a deletion deadline" and that OpenAI may hold entries longer than the requested minimum.