1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【OpenAI API】GPT-5.6以降のPrompt cachingは実質的な値上げ? 新料金と対策を解説

1
Last updated at Posted at 2026-10-21

概要

本記事では、GPT-5.6以降のPrompt cachingについて、従来方式との違いと料金への影響を解説します。

項目 API料金例
通常入力 $0.10
キャッシュ読み込み $0.01
30分キャッシュ書き込み ←New! $0.125
12時間キャッシュ書き込み ←New! $0.25

特に重要なのは、キャッシュ書き込み料金が通常入力料金より高くても、再利用によって全体の費用が安くなる場合があることです。

確認したいこと 記事で説明する内容
何が変わった? 30分・12時間のキャッシュ書き込み料金と保持期間
実質的な値上げ? キャッシュを再利用できる回数による料金比較
初回から書き込み料金が発生する? 過去の実行履歴がなくても書き込まれる条件
どの部分がキャッシュされる? 自動キャッシュと明示的なブレークポイント
不要なキャッシュを防げる? mode: "explicit" による書き込みの制御
30mと12hのどちらが得? 利用間隔と保持期間による選び方
実際に節約できている? キャッシュ使用量の確認方法

結論として、キャッシュを利用するかどうかだけでなく、どの部分を、どれくらいの頻度で再利用するかが重要です。

以下では、料金体系・動作例・設定方法を順番に説明します。


目次

まず知りたいこと

キャッシュの仕組み

設定方法・費用削減

まとめ・参考資料


前書き

GPT-5.6以降では、従来の最大24時間キャッシュとは異なるキャッシュ設定・料金体系が採用されています。

一例を挙げると、次のような料金項目が新たに追加されました。

項目 API料金例
通常入力 $0.10
キャッシュ読み込み $0.01
30分キャッシュ書き込み ←New! $0.125
12時間キャッシュ書き込み ←New! $0.25

※GPT-6 Luna(Standard)の100万トークンあたりの料金です。

※30分キャッシュの書き込み料金は通常入力料金を含むため、単一のAPI実行で通常入力料金が$0.01相当だったとしても、同じトークンに書き込み料金が加算されて$0.0225になるわけではありません。

※例えば「共通プロンプト10万トークンをキャッシュに書き込み、別の質問10万トークンを通常入力する」場合は、それぞれ$0.0125と$0.01が発生し、合計$0.0225になります。


これまで、キャッシュ書き込みに追加料金が発生しないモデルもありました。

しかし、新しい料金体系では、キャッシュ書き込み対象のトークンに、通常入力料金の1.25倍または2.5倍の料金が適用されます。

つまり、通常入力料金と比較して25%または150%高くなります。

ただし、キャッシュの読み込み料金は通常入力より安いため、繰り返し利用できれば費用を削減できます。


実質的な値上げかどうかは、主に次の点で判断できます。

  • 書き込み対象トークンに25%または150%の割増料金が発生する
  • 最低12時間保持される選択肢が利用できる
  • 自分の使い方で、キャッシュをどの程度再利用できるか
  • 新旧方式のキャッシュ保持時間や延長の仕組みが、自分の使い方に有利かどうか

特に、新方式では、キャッシュの読み込みによって保持期間が次のように更新されます。

キャッシュ方式 読み込み時の保持期間
30m 読み込み時点から最低30分に更新
12h 既存の期限と、読み込み時点から30分後の遅い方

つまり、30mでも30分以内の間隔で再利用し続ければ、最初の書き込みから30分以上経過してもキャッシュを利用できます。

一方、旧24h方式は通常30分程度、最長24時間の保持が想定されますが、最低30分の保証とは異なります。

50種類のキャッシュが保存されている場合、1回のAPI実行でキャッシュA・B・Cに相当する部分が読み込まれたなら、その読み込み部分が保持期間の更新対象となり、利用されなかった残り47種類のキャッシュは更新されない点に注意してください。

つまり、API全体の実行回数が多くても、個々のキャッシュが頻繁に再利用されるとは限りません。


また、GPT-5.6以降では、キャッシュする位置を明示的に指定したり、不要なキャッシュ書き込みを抑制したりできます。

キャッシュへの書き込みに、過去のAPI実行履歴は必須ではありません。

そのため、30時間ぶりのAPI実行など、有効なキャッシュが存在しない状態での実質的な初回リクエストでも、条件を満たせばキャッシュ書き込み料金が発生する可能性があります。

本記事では、これらの仕組みについて説明します。


新しい料金体系

OpenAI APIのGPT-5.6以降の料金表には、Prompt cachingの「30m write」「12h write」という項目があります。

これはAIの実行時間ではなく、プロンプトのキャッシュを最低30分・12時間保持するための料金です。

GPT-6 Lunaの料金例

GPT-6 Luna(Standard、100万トークンあたり)の料金は次のとおりです。

項目 料金 通常入力に対する倍率
通常入力 $0.10 1.00倍
キャッシュ読み込み $0.01 0.10倍
30分キャッシュ書き込み $0.125 1.25倍
12時間キャッシュ書き込み $0.25 2.50倍

つまり、キャッシュ書き込み時には、通常入力と比較して次の料金が発生します。

  • 30分:1.25倍(25%増)
  • 12時間:2.5倍(150%増)

一方、キャッシュの読み込み料金は通常入力の10分の1です。

※GPT-6.1 Solなど、一部モデルでは読み込み料金が通常入力の0.05倍です。

なお、書き込み料金は通常入力料金に加算されるものではなく、書き込み対象トークンに適用される合計料金です。


従来のキャッシュ保持時間との比較

OpenAIの公式ドキュメントでは、従来のPrompt cachingと新方式について説明されています。

キャッシュ方式 保持時間 書き込み追加料金
従来の標準方式(in_memory) 通常5〜10分程度 なし
従来の延長方式(24h) 通常30分程度、最長24時間 なし
新方式(30m) 最低30分 通常入力の1.25倍の料金
新方式(12h) 最低12時間 通常入力の2.5倍の料金

※従来方式の保持時間は目安であり、保証時間とは限りません。

※新方式では、最低保持時間を過ぎてもキャッシュが残っている可能性があります。

旧24h方式は利用できなくなった?

公式ドキュメントでは、GPT-5.6以降と従来モデルでキャッシュの設定方法が区別されています。

従来モデルでは、prompt_cache_retention による 24h などの指定が利用されていました。

一方、GPT-5.6以降では、prompt_cache_options.ttl による 30m または 12h が案内されています。

そのため、GPT-5.6以降の料金体系を、従来の追加書き込み料金がない24h方式と単純に同一視することはできません。

ただし、旧24h方式がすべてのモデルから廃止されたという意味ではありません。


実質的な値上げ?

従来のPrompt cachingでは、キャッシュ書き込みに追加料金が発生しないモデルがありました。

しかし、GPT-5.6以降の新しいキャッシュ料金体系では、30分キャッシュが標準設定となり、書き込み料金が通常入力の1.25倍になります。

そのため、キャッシュを書き込んでも再利用できなければ、従来より割高になる可能性があります。

一方、同じプロンプトを繰り返し利用する場合には、キャッシュの読み込み割引によって、キャッシュを利用しない場合より安くなります。

また、12時間キャッシュは書き込み料金が高いものの、30分キャッシュでは期限切れになるような時間間隔で再利用する場合、有利になる可能性があります。


キャッシュの再利用率による料金比較

30分キャッシュは読み込みによって保持期間が延長されるため、12時間キャッシュとの比較では、利用回数だけでなく利用間隔も重要です。

今回は、12時間で合計30回のAPI実行を想定し、キャッシュの再利用率による料金を比較します。

再利用率 キャッシュなし 30分キャッシュ 12時間キャッシュ
10%(3回) 1.00000倍 1.17333倍 2.34000倍
20%(6回) 1.00000倍 1.05833倍 2.10000倍
30%(9回) 1.00000倍 0.94333倍 1.86000倍
50%(15回) 1.00000倍 0.71333倍 1.38000倍
70%(21回) 1.00000倍 0.48333倍 0.90000倍
90%(27回) 1.00000倍 0.25333倍 0.42000倍

※各リクエストの入力トークン数は同じと仮定しています。

※再利用されない入力も毎回キャッシュに書き込まれると仮定しています。

※再利用される入力は1種類のみで、初回書き込み後、残りはすべて読み込めると仮定しています。

※キャッシュ読み込み料金は通常入力の0.1倍、出力料金は計算対象外です。

※再利用率は実測値ではなく、比較用の仮定です。

考察

今回の表では、同じ再利用率なら30分キャッシュの方が安くなります。

ただし、実際には30分キャッシュが期限切れになり、再度書き込み料金が発生する可能性があります。

一方、12時間キャッシュは最低12時間保持されるため、長い利用間隔でも再利用できる可能性があります。

つまり、

  • キャッシュ無効:再利用が少ない場合
  • 30分キャッシュ:短い間隔で繰り返し利用する場合
  • 12時間キャッシュ:30分キャッシュでは保持期間が途切れやすい場合

というように、利用状況によって向き不向きがあります。

実際の料金比較では、再利用率だけでなく、キャッシュが期限切れになって再書き込みされる回数も重要です。

ここでも50種類のキャッシュが保存されている場合、1回のAPI実行でキャッシュA・B・Cに相当する部分が読み込まれたなら、その読み込み部分が保持期間の更新対象となり、利用されなかった残り47種類のキャッシュは更新されない点に注意してください。

つまり、API全体の実行回数が多くても、個々のキャッシュが頻繁に再利用されるとは限りません。


GPT-5.6以降のキャッシュ書き込み条件

GPT-5.6以降では、自動キャッシュと明示的なキャッシュの2種類を利用できます。

条件 キャッシュの動作
キャッシュ対象部分が1,024トークン未満 書き込み対象にならない
キャッシュ対象部分が1,024トークン以上 条件を満たせば書き込み可能
キャッシュ対象の文章が初登場 条件を満たせば書き込まれる
同じ文章が既存キャッシュに存在 一致する境界があれば読み込み可能
キャッシュが期限切れ 再度書き込みが必要になる可能性がある
明示的なキャッシュ設定なし 自動キャッシュが利用される
mode: "explicit" でブレークポイントなし キャッシュを無効化できる
mode: "explicit" でブレークポイントあり 指定した位置までをキャッシュ対象にできる

※1,024トークンは、GPT-5.6以降でキャッシュ対象にできる最小の可視入力トークン数です。

※入力全体が1,024トークン以上でも、実際のキャッシュ対象部分が1,024トークン未満なら、その部分をキャッシュすることはできません。

知っておくべきこと

項目 説明
キャッシュ書き込み 初登場の文章でも、条件を満たせば保存される
キャッシュ読み込み 過去に保存した文章と一致する場合に再利用される

キャッシュの書き込みには、同じ文章を2回以上送信する必要はありません。

ただし、キャッシュの再利用には、一致する文章に加えて、適切なキャッシュ境界が必要です。


具体的な利用例

以下は、毎回の入力が約2,100トークンの場合です。

利用状況 何が起こるか
先頭100トークンは同じで、残り2,000トークンは毎回異なる 共通部分を再利用できず、毎回約2,100トークンの書き込み料金が発生する可能性がある
先頭1,500トークンは同じで、残り600トークンは毎回異なる 利用可能なキャッシュ境界があれば、共通部分を再利用できる
先頭2,100トークンが毎回同じ 2回目以降は、キャッシュが有効なら全体を再利用できる可能性がある
毎回2,100トークンがすべて異なる 毎回書き込み料金が発生する可能性が高い
先頭100トークンだけが同じで、mode: "explicit" を設定し、ブレークポイントなし 自動キャッシュ書き込みを抑制し、通常入力料金で処理できる

重要なのは、共通する文章が1,024トークン以上あっても、必ずその部分を再利用できるとは限らないことです。

自動キャッシュでは、OpenAI側がキャッシュ境界を決定します。

そのため、共通部分の末尾に利用可能な境界が存在しなければ、共通部分だけを読み込めない場合があります。


A・Bを交互に切り替える場合

例えば、先頭1,500トークンが共通し、残り600トークンをA・B交互に切り替える場合を考えます。

ここでは、キャッシュが有効期間内に保持されており、各リクエスト全体の末尾にもキャッシュ境界が存在すると仮定します。

キャッシュ境界の位置によって、以下の2パターンが考えられます。

パターン①:共通部分を再利用できる場合

共通1,500トークンの末尾に利用可能なキャッシュ境界が存在する場合です。

回数 入力内容 キャッシュの動作
1回目 共通1,500+A600 2,100トークンを書き込み
2回目 共通1,500+B600 1,500トークンを読み込み+600トークンを書き込み
3回目 共通1,500+A600 1回目の2,100トークンを読み込み
4回目 共通1,500+B600 2回目の2,100トークンを読み込み
5回目 共通1,500+A600 1回目の2,100トークンを読み込み
6回目 共通1,500+B600 2回目の2,100トークンを読み込み
7回目 共通1,500+A600 1回目の2,100トークンを読み込み
8回目 共通1,500+B600 2回目の2,100トークンを読み込み

※1回目は共通部分も初登場ですが、キャッシュの書き込みに過去の一致履歴は必要ありません。

パターン②:共通部分を再利用できない場合

共通1,500トークンの末尾に利用可能なキャッシュ境界がない場合です。

回数 入力内容 キャッシュの動作
1回目 共通1,500+A600 2,100トークンを書き込み
2回目 共通1,500+B600 2,100トークンを書き込み
3回目 共通1,500+A600 1回目の2,100トークンを読み込み
4回目 共通1,500+B600 2回目の2,100トークンを読み込み
5回目 共通1,500+A600 1回目の2,100トークンを読み込み
6回目 共通1,500+B600 2回目の2,100トークンを読み込み
7回目 共通1,500+A600 1回目の2,100トークンを読み込み
8回目 共通1,500+B600 2回目の2,100トークンを読み込み

2つのパターンの違い

項目 パターン① パターン②
1回目の書き込み 2,100トークン 2,100トークン
2回目の書き込み 600トークン 2,100トークン
2回目の読み込み 1,500トークン なし
3回目以降 A・Bそれぞれのキャッシュを再利用 A・Bそれぞれのキャッシュを再利用

つまり、2回目の書き込み料金に差が生じますが、A・Bの両方がキャッシュされれば、3回目以降の動作は同じになる可能性があります。

※これはキャッシュ境界や保持状態などの条件を満たした場合の想定例です。

※実際の動作はメッセージ構造、ブレークポイント、キャッシュの有効期限などによって異なります。


明示的なキャッシュを利用する場合

GPT-5.6以降では、キャッシュを書き込む位置を開発者が明示的に指定できます。

例えば、共通する1,500トークンの末尾にブレークポイントを設定すると、次のような動作を狙えます。

回数 入力内容 キャッシュの動作
1回目 共通1,500+A600 共通1,500を書き込み+A600を通常入力
2回目 共通1,500+B600 共通1,500を読み込み+B600を通常入力
3回目 共通1,500+C600 共通1,500を読み込み+C600を通常入力
4回目 共通1,500+D600 共通1,500を読み込み+D600を通常入力

この方式では、毎回異なる600トークン部分について、不要なキャッシュ書き込み料金が発生することを防げます。

キャッシュする位置を指定する方法

Responses APIでは、例えば次のように指定できます。

{
  "model": "gpt-6-luna",
  "prompt_cache_options": {
    "mode": "explicit",
    "ttl": "30m"
  },
  "input": [
    {
      "role": "developer",
      "content": [
        {
          "type": "input_text",
          "text": "ここに1024トークン以上の共通プロンプトを配置",
          "prompt_cache_breakpoint": {
            "mode": "explicit"
          }
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "毎回異なる質問"
        }
      ]
    }
  ]
}

※共通プロンプトの文字列は説明用です。実際には1,024トークン以上のキャッシュ対象部分が必要です。

この例では、developerメッセージの共通部分をキャッシュ対象にし、その後のuserメッセージを通常入力として処理する構成を狙っています。

キャッシュを無効化する方法

キャッシュ自体が不要な場合は、Responses APIで次のように設定できます。

{
  "prompt_cache_options": {
    "mode": "explicit"
  }
}

この設定で明示的なブレークポイントを設けなければ、キャッシュの書き込みと読み込みを無効化できます。

これにより、不要な自動キャッシュ書き込みを抑制できます。

※これはResponses API向けの設定です。利用するAPIやモデルの対応状況を確認してください。


30分キャッシュと12時間キャッシュの選び方

どちらが安いかは、キャッシュを再利用する時間間隔によって異なります。

利用状況 向いている方式
数分以内に同じプロンプトを繰り返す 30m
10分程度の間隔で繰り返し利用する 30m
数時間後にも同じ内容を利用する 12hを検討
半日程度の間隔で利用する 12hを検討
毎回まったく異なる長文を送信する explicitによる書き込み抑制を検討
共通部分だけを繰り返し利用する explicitによる部分キャッシュを検討

12時間キャッシュは、30分キャッシュよりも長い保持期間を保証します。

ただし、30分キャッシュも、最低30分を過ぎた瞬間に必ず消えるわけではありません。

また、キャッシュの読み込みによって保持期間が延長される仕組みもあります。

そのため、実際の利用料金を比較する場合は、単純な経過時間だけでなく、キャッシュのヒット状況を確認することが重要です。


キャッシュによって実質的な値上げになる条件

GPT-5.6以降では、キャッシュ書き込み料金が通常入力より高く設定されています。

30分キャッシュの場合、通常入力の1.25倍です。

例えば、同じ2,100トークンを処理する場合、次のようになります。

処理方法 通常入力に対する料金
キャッシュなし 1.00倍
全体を30分キャッシュに書き込み 1.25倍
全体を12時間キャッシュに書き込み 2.50倍
全体をキャッシュから読み込み 0.10倍

キャッシュを一度書き込んだ後、繰り返し読み込めるならば、大幅な料金削減につながります。

一方、キャッシュを再利用できない場合、通常入力より25%または150%高い料金を支払う可能性があります。

例えば、次のような利用形態です。

  • 共通するプロンプトが1,024トークン未満
  • 毎回異なる長文を送信する
  • 同じ文章を繰り返し利用することが少ない
  • キャッシュが期限切れになるまで再利用しない
  • 共通部分があっても、再利用できるキャッシュ境界がない

ただし、これは書き込み対象トークンの料金比較です。

出力料金などを含むAPI全体の料金が、同じ割合で増加するわけではありません。

また、キャッシュ対象外の短い入力は、通常入力料金で処理されます。


対策

費用を削減するためには、次の方法が考えられます。

対策 期待できる効果
共通プロンプトを先頭に配置 キャッシュの再利用率を高める
明示的なブレークポイントを利用 必要な部分だけをキャッシュする
mode: "explicit" で境界を設けない 不要なキャッシュ書き込みを防ぐ
長期間再利用する部分に12hを指定 時間が空いた場合も再利用しやすくする
キャッシュの利用実績を確認 実際の費用対効果を判断する

特に、毎回異なる長文を処理するアプリでは、明示的なキャッシュ設定が有効な場合があります。

実際のキャッシュ使用量を確認する

Responses APIでは、レスポンスの使用量情報から、キャッシュの利用状況を確認できます。

主に確認したい項目は次のとおりです。

項目 意味
cached_tokens キャッシュから読み込んだトークン数
cache_write_tokens キャッシュに書き込んだトークン数

これらを記録しておけば、実際にキャッシュが再利用されているか確認できます。

書き込みが多い一方で読み込みがほとんど発生していない場合は、キャッシュ設定を見直す価値があります。


結論

GPT-5.6以降では、キャッシュの再利用がほとんど発生しないアプリは、Prompt cachingによって実質的な値上げになる可能性があります。

従来のキャッシュ方式では、書き込みに追加料金が発生しないモデルもありました。

一方、新方式では、書き込み対象トークンに通常入力の1.25倍または2.5倍の料金が適用されます。

ただし、キャッシュを再利用できれば、その割引によって書き込み料金の増加を上回る節約効果が期待できます。

特に、最低12時間保持される仕組みは、長い時間間隔で同じプロンプトを利用する場合に有利になる可能性があります。

また、Responses APIでは、mode: "explicit" によってキャッシュ対象を指定したり、不要な自動キャッシュ書き込みを抑制したりできます。

キャッシュを利用するかどうかだけでなく、どの部分をキャッシュするかを考えることが、GPT-5.6以降では重要になったと言えそうです。


キャッシュの読み込みによる保持期間の更新

GPT-5.6以降では、30分キャッシュを読み込むと、その読み込み時点から最低30分間、保持期間が更新されます。

例えば、30分キャッシュを10分間隔で再利用する場合、次のようになります。

時刻 動作 最低保持期限
12:00 キャッシュを書き込み 12:30
12:10 キャッシュを読み込み 12:40
12:20 キャッシュを読み込み 12:50
12:30 キャッシュを読み込み 13:00
12:40 キャッシュを読み込み 13:10
12:50 キャッシュを読み込み 13:20

※各回で正常にキャッシュが再利用された場合の例です。

つまり、30分以内の間隔でキャッシュを読み込み続ければ、最初の書き込みから30分以上経過しても、再利用を継続できます。

12時間キャッシュの場合

12時間キャッシュを読み込んでも、12時間の保持期間が最初から再スタートするわけではありません。

ただし、読み込み時点から30分後と、既存の保持期限を比較し、遅い方が適用されます。

キャッシュ方式 読み込み時の保持期間
30m 読み込み時点から最低30分に更新
12h 既存の期限と、読み込み時点から30分後の遅い方

したがって、頻繁に再利用するプロンプトであれば、書き込み料金が安い30分キャッシュで十分な場合があります。

一方、数時間以上アクセスしない可能性がある場合は、12時間キャッシュを検討する価値があります。

※保持期間の更新によって追加の書き込み料金が発生するわけではありません。ただし、キャッシュ読み込み料金は発生します。

※保持期間が保証されていても、すべてのリクエストでキャッシュヒットが発生するとは限りません。

参考:OpenAI公式ドキュメント:Prompt caching


参考資料

※本記事は2026年10月21日時点の公式ドキュメントを参考にしています。

※料金はモデルや処理方式によって異なります。

※具体的なキャッシュの動作例は、仕様に基づく想定であり、実際のキャッシュヒットを保証するものではありません。

おまけ:30m write にマウスオーバーした際に表示される文章をコピーしたい

OpenAI API Pricing

上記ページの「30m write」にマウスオーバーすると説明文が表示されますが、その文章はコピーしにくいと思います。

そこで、引用・検索・事実確認などに利用できるよう、英語原文と日本語訳をコピー可能なテキストとして残します。

英語(原文)

The cache-write prices shown use the default 30-minute lifetime. Input tokens are either Input, Cached Input, or Cache Write and writes are not an additive fee. You can control which input tokens get written to cache using explicit cache breakpoints.

日本語訳

表示されているキャッシュ書き込み料金は、デフォルトの保持期間である30分を基準としています。

入力トークンは、通常入力(Input)、キャッシュ済み入力(Cached Input)、キャッシュ書き込み(Cache Write)のいずれかに分類され、キャッシュ書き込み料金は通常入力料金に上乗せされるものではありません。

明示的なキャッシュの区切り位置(Explicit Cache Breakpoints)を使用することで、どの入力トークンをキャッシュに書き込むかを制御できます。

特に重要な点

原文の次の部分が重要です。

writes are not an additive fee

これは、同じ入力トークンに対して、通常入力料金とキャッシュ書き込み料金が二重に請求されるわけではないことを意味します。

表示されているキャッシュ書き込み料金は、デフォルトの保持期間である30分を基準としています。

入力トークンは、トークンごとに以下のいずれかに分類されます。

  • 通常入力(Input)
  • キャッシュ済み入力(Cached Input)
  • キャッシュ書き込み(Cache Write)

これらは同じトークンに対して重複して適用されるものではなく、キャッシュ書き込み料金が通常入力料金に上乗せされることはありません。

明示的なキャッシュの区切り位置(Explicit Cache Breakpoints)を使用することで、どの入力トークンをキャッシュに書き込むかを制御できます。

公式ドキュメント を踏まえて判断すると、キャッシュへの書き込み対象となる範囲を指定でき、実際にキャッシュへの書き込みや既存キャッシュの読み込みが行われるかどうかは、最低トークン数などの条件や、既存キャッシュとの一致状況によって決まる認識です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?