OpenAI API、プロンプトキャッシュを12時間保持できるように 書き込みは2.5倍、数時間おきの利用なら大幅に安く

OpenAIは2026年10月20日(米国時間)、APIのプロンプトキャッシュを12時間保持する設定を選べるようにしました。これまでの既定は30分(最低限の保持時間)で、次の呼び出しまで30分以上あくと、同じ指示文やツールの定義でもキャッシュの期限が切れ、書き込み直しになることがありました。12時間を選ぶと、数時間おきの呼び出しでも安いキャッシュ入力の料金が使えます。代わりに、キャッシュへの書き込みは通常の入力料金の2.5倍になります。対象はGPT-5.6以降のモデルで、Responses APIで使えます。

この記事の要点

  • Responses APIで prompt_cache_options.ttl に "12h" を指定すると、キャッシュが最低12時間保持されます。既定は "30m"(最低30分)のままです。
  • 対象はGPT-5.6以降のモデルです。それより前のモデルは、これまでどおり prompt_cache_retention で設定します。
  • 書き込みは通常入力の2.5倍(30分は1.25倍)です。読み出しはどちらも同じで、多くのモデルが0.1倍、GPT-6.1 Solは0.05倍です。
  • 30分以上あけて同じ前置きを1日に3回以上使うなら、12時間のほうが安くなります。1時間おきに12回使う例では、入力の費用が30分設定より約76%(GPT-6.1 Solは約80%)下がります。
  • 30分以内に呼び続けるなら、書き込みが安い既定の30分のほうが得です。1回のリクエストで12時間と30分を使い分けることもできます。
目次

発表の概要

項目内容
発表2026年10月20日(米国時間)。OpenAI APIのChangelogと、@OpenAIDevsのX投稿(日本時間10月21日2時56分)
内容プロンプトキャッシュの保持時間として「12時間」を選べるようになった
対象Responses API(v1/responses)。GPT-5.6以降のモデル
設定prompt_cache_options.ttl に "12h"(既定は "30m")。区切りごとに prompt_cache_breakpoint.ttl でも指定できる
料金書き込みは通常入力の2.5倍(30分は1.25倍)。読み出しは保持時間にかかわらず同じ

@OpenAIDevsの投稿内容

You can now choose 12-hour prompt caching in the API.

Persistent agents, like dots, reuse context throughout the day.

You can keep shared instructions, tools, and context cached longer and pay the lower cached-input rate, even when requests are hours apart.

OpenAI Developers(@OpenAIDevs)2026年10月20日(米国時間)

日本語にすると、「APIで12時間のプロンプトキャッシュを選べるようになった。dotsのような常に動いているエージェントは、1日を通して同じ文脈を使い回す。共通の指示やツール、文脈をより長くキャッシュしておけるので、リクエストの間が何時間もあいても、安いキャッシュ入力の料金で済む」という内容です。

プロンプトキャッシュとは

プロンプトキャッシュは、リクエストの先頭部分(指示文、ツールの定義、参考資料、それまでの会話など)が前回と同じとき、その部分の処理結果を使い回す仕組みです。OpenAIのモデルでは最初から有効になっていて、使い回せた分の入力は安い「キャッシュ入力」の料金になり、応答が始まるまでの時間も短くなります。

GPT-5.6以降のモデルでは、キャッシュに書き込むときに料金がかかり、読み出すときは大きく割り引かれます。GPT-5.6以降でキャッシュできるのは、先頭から1,024トークン以上ある部分です。

30分と12時間の違い

30分(既定)12時間
指定する値"30m""12h"
最低限の保持時間30分12時間
書き込みの料金通常入力の1.25倍通常入力の2.5倍
読み出しの料金通常入力の0.1倍(GPT-6.1 Solは0.05倍)30分と同じ
向いている使い方会話や、続けて動くエージェントの処理など、短い間隔で同じ文脈を使う場合1日を通して使う指示文や参考資料など、数時間あけて使い回す場合

書き込みの料金は、通常の入力料金に上乗せされるものではなく、その分のトークンにかかる料金そのものです。12時間は「最低限の保持時間」で、OpenAIがそれより長く残すこともあります。ただし、12時間の間は必ずキャッシュが使われる、必ず速くなるという約束ではありません。キャッシュはサーバーごとに置かれるため、別のサーバーに振り分けられると使えないことがあります。

12時間で書き込んだ部分を読み出しても、12時間の期限が最初から数え直しになるわけではありません。残りの期限と「読み出しから30分後」の遅いほうまで保たれ、読み出しで書き込みの料金がかかることもありません。

対象のモデルと料金

12時間のキャッシュが使えるのは、GPT-5.6以降のモデルです。OpenAIの料金ページで「12h write(12時間の書き込み)」の料金が載っている主なモデルは次のとおりです(標準の料金、100万トークンあたり、入力が27万2,000トークン以下の場合)。

モデル通常の入力キャッシュ入力(読み出し)30分の書き込み12時間の書き込み
gpt-6-astra$10.00$1.00$12.50$25.00
gpt-6.1-sol$2.00$0.10$2.50$5.00
gpt-6-sol$2.00$0.20$2.50$5.00
gpt-6-luna$0.10$0.01$0.125$0.25
gpt-5.6-terra$2.00$0.20$2.50$5.00
gpt-5.6-luna$0.20$0.02$0.25$0.50

gpt-5.6-solも対象で、料金ページでは12時間の書き込みが$10.00です(今の料金は少なくとも2026年11月21日までのキャンペーン価格とされています)。gpt-5.5やgpt-5.4など、それより前のモデルには書き込みの料金がなく、12時間の設定もありません。各社のモデルの料金は、主要AIモデルのAPI料金比較と、主要AIモデルのAPI料金の推移で比べています。

どれくらい安くなるか

同じ前置き(指示文、ツールの定義、参考資料で5万トークン)を、1時間おきに1日12回使う場合で計算しました。費用は前置きの部分の入力だけで、毎回変わる質問の部分と出力は含めていません。料金は上の表の標準の料金です。

既定の30分では、次の呼び出しまでにキャッシュの期限が切れ、毎回1.25倍で書き込み直しになるとして計算しています。12時間では、最初の1回だけ2.5倍で書き込み、残りの11回は読み出しの料金になります。

モデルキャッシュを使わない30分(既定)12時間30分と比べた差
gpt-6-astra$6.00$7.50$1.80約76%安い
gpt-6-sol$1.20$1.50$0.36約76%安い
gpt-6.1-sol$1.20$1.50$0.305約80%安い
gpt-6-luna$0.06$0.075$0.018約76%安い

1日あたりの金額です。30日続けると、gpt-6-astraでは30分設定の$225.00が12時間で$54.00に、gpt-6.1-solでは$45.00が$9.15になります(12時間のキャッシュは夜のうちに切れる前提で、毎日1回書き込み直す計算です)。

通常の入力料金を1としたときの倍率で見ると、30分設定は12回×1.25=15.0、12時間は2.5+11回×0.1=3.6です。この例では、30分設定はキャッシュを使わない場合(12.0)よりも高くなります。

12時間を選ぶ目安

同じ前置きを使う回数キャッシュを使わない30分(毎回書き込み直し)12時間
1回1.01.252.5
2回2.02.52.6
3回3.03.752.7
5回5.06.252.9
12回12.015.03.6

通常の入力料金を1とした倍率で、読み出しが0.1倍のモデルの場合です。呼び出しの間が30分以上あくなら、12時間以内に3回以上使うと12時間のほうが安くなり、2回までなら変わらないか少し高くなります。

反対に、30分以内に次の呼び出しがある使い方では、30分の設定でもキャッシュが続けて使えます。この場合は書き込みが安い30分のほうが得です。OpenAIも、よく使う文脈は30分のまま、長い間隔で使う決まった前置きには12時間を検討するよう案内しています。

使い方

Responses APIのリクエストで、prompt_cache_options の ttl に "12h" を指定します。指定しなければ、これまでどおり30分です。対応していない値を指定すると、エラー(400 invalid_request_error)になります。

{
  "model": "gpt-6.1-sol",
  "prompt_cache_options": { "ttl": "12h" },
  "input": [
    { "role": "developer", "content": "1日を通して使う指示文や参考資料…" },
    { "role": "user", "content": "今回の質問…" }
  ]
}

キャッシュの区切り(ブレークポイント)を自分で置く場合は、区切りごとに prompt_cache_breakpoint の ttl で保持時間を変えられます。たとえば、1日中使う指示文の区切りは12時間、その日の会話の区切りは30分にする、という使い分けが1回のリクエストでできます。1回のリクエストで書き込めるのは4か所までです。

{
  "model": "gpt-6.1-sol",
  "prompt_cache_options": { "mode": "explicit", "ttl": "30m" },
  "input": [
    {
      "role": "developer",
      "content": [{
        "type": "input_text",
        "text": "1日を通して使う指示文や参考資料…",
        "prompt_cache_breakpoint": { "mode": "explicit", "ttl": "12h" }
      }]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "しばらく使う会話の文脈…",
          "prompt_cache_breakpoint": { "mode": "explicit" }
        },
        { "type": "input_text", "text": "今回の質問…" }
      ]
    }
  ]
}

この例では、リクエスト全体の既定を30分にして、最初の区切りだけ12時間にしています。最後の区切りより後ろの「今回の質問」は、キャッシュに書き込まれず、通常の入力料金になります。

すでに30分で書き込まれている部分を12時間に切り替えると、その部分は12時間の料金でもう一度書き込まれます。前の書き込みの料金が差し引かれることはありません。

料金の確かめ方

レスポンスの usage.input_tokens_details に、読み出したトークン数(cached_tokens)と書き込んだトークン数(cache_write_tokens)が入ります。書き込みは cache_write_tokens_details の中で、30分(ttl_30m_tokens)と12時間(ttl_12h_tokens)に分けて返されます。

入力の費用は、通常の入力のトークン数×入力の料金、cached_tokens×キャッシュ入力の料金、ttl_30m_tokens×入力の料金の1.25倍、ttl_12h_tokens×入力の料金の2.5倍を足したものです。キャッシュの使われ方は、OpenAIの管理画面のPrompt Caching Dashboardでも確認できます。

以前のモデルの場合

GPT-5.5以前のモデルでは、これまでどおり prompt_cache_retention で保持のしかたを決めます。今回の prompt_cache_options.ttl はこの設定を変えません。GPT-5.6以降に移るときは、prompt_cache_retention を prompt_cache_options.ttl に置き換えるよう案内されています。また、12時間の設定はキャッシュを消す期限を決めるものではなく、データの保存期間の上限も変わりません。

OpenAIの公式の更新は、ChatGPTの最新アップデート・更新履歴にまとめています。

出典

目次