OpenAIのプロンプトキャッシュ(2026年10月):仕組み、料金、ROI
OpenAIのプロンプトキャッシュはデフォルトで有効です。リクエストの先頭部分(プレフィックス)が最近のリクエストと同じ場合(GPT-5.6以降では最低1,024トークン)、OpenAIは保存済みの計算結果を再利用し、そのトークンをキャッシュ入力料金で課金します。通常の入力より約90〜95%安くなります。 2026年10月25日時点で、GPT-5.6以降では1回限りのキャッシュ書き込み料金もかかります。デフォルトの30分の有効期間なら入力料金の1.25倍、12時間なら2.5倍です。有効期間内にプレフィックスが1回でも再利用されれば、キャッシュは2回送信するより安くなります。
このガイドでは、OpenAIのキャッシュの仕組み、現行モデルでの費用、ブレークポイントとTTLによる制御方法、節約効果の測定方法、AnthropicやGeminiのキャッシュとの違いを解説します。料金はすべてOpenAIプロンプトキャッシュガイドとOpenAI API料金ページに基づき、2026年10月25日に確認しました。
OpenAIプロンプトキャッシュの料金
Standardティアの100万トークンあたりの料金:
| モデル | 入力 | キャッシュ入力(読み取り) | 30分書き込み | 12時間書き込み | 出力 |
|---|---|---|---|---|---|
| gpt-6-astra | $10.00 | $1.00 | $12.50 | $25.00 | $50.00 |
| gpt-6.1-sol | $2.00 | $0.10 | $2.50 | $5.00 | $10.00 |
| gpt-6-luna | $0.10 | $0.01 | $0.125 | $0.25 | $0.50 |
| gpt-5.6-sol | $4.00 | $0.40 | $5.00 | $10.00 | $20.00 |
キャッシュ読み取りは、ほとんどのモデルで非キャッシュ入力料金の0.1倍、GPT-6.1 Solでは0.05倍です。Batchティアではこの表のすべての数値が半額になり、Fastモードでは2倍になります。2026年3月5日以降にリリースされたモデルでは、リージョン別データレジデンシーのエンドポイントに10%の上乗せがあります。
よくある誤解があります。キャッシュ書き込み料金は、入力料金に上乗せされる追加費用ではありません。 各入力トークンは、非キャッシュ、キャッシュ読み取り、キャッシュ書き込みのいずれか1つの料金で1回だけ課金されます。30分の書き込みは、そのトークンについて通常の入力より25%高く、その後のヒットはその10%(または5%)の料金になります。
OpenAIプロンプトキャッシュの仕組み
モデルはプロンプトを読み込む際、すべてのトークンについてキー・バリュー(KV)状態を計算します。プロンプトキャッシュは、再利用可能なプレフィックス、つまりプロンプトの変化しない冒頭部分のKV状態を保存します。後続のリクエストがまったく同じプレフィックスで始まり、一致するキャッシュエントリが見つかれば、モデルは再計算をスキップするため、費用と最初のトークンまでの時間がどちらも下がります。
キャッシュされるプレフィックスには、内容が変わる箇所より前にOpenAIがレンダリングするすべてが含まれます。非表示のシステムコンテンツ、developerメッセージ、ツール定義、会話履歴(テキスト、画像、ドキュメント、対応する音声を含む)です。一致は完全一致でなければなりません。システムプロンプト内のタイムスタンプ、ツールリストの並び替え、別の画像など、ブレークポイントより前で何かが変わると、その変更以降はすべてミスになります。
GPT-5.6以降の主なルール:
- 最低長: キャッシュされるにはプレフィックスが1,024トークン以上必要です。OpenAIの非表示システムトークンはこれに含まれません。
- ブレークポイント: ブレークポイントは、キャッシュに書き込めるプレフィックスの終わりを示します。暗黙モード(デフォルト)では、OpenAIが最新の対象メッセージの末尾に1つ置きます。明示モードでは
prompt_cache_breakpointで位置を指定します。 - 1リクエストにつき最大4回の書き込み: 各リクエストで最大4つのキャッシュ書き込みを作成できるため、変化の速さが異なる層ごとにキャッシュできます。
- 有効期間: Responses APIで
prompt_cache_options.ttlを"30m"(デフォルト)または"12h"に設定します。キャッシュ読み取りの料金はどちらも同じです。
GPT-5.6より前のモデルでは、暗黙キャッシュのみ利用できます。保持期間は prompt_cache_retention で制御します。in_memory は非アクティブ状態で約5〜10分(最長1時間)エントリを保持し、24h は最長24時間まで延長します。Zero Data Retention(ZDR)を使っていない組織のデフォルトは 24h、ZDR組織のデフォルトは in_memory です。これらの旧モデルでは、安定した prompt_cache_key を使うと関連リクエストを同じキャッシュにルーティングしやすくなります。OpenAIは1つのキーあたり毎分約15リクエストに抑え、それ以上のトラフィックは複数のキーに分散することを推奨しています。
キャッシュが元を取れる条件
OpenAIのガイドに基本的な計算が載っています。読み取り0.1倍、書き込み1.25倍の場合、プレフィックスを1回書き込んで1回再利用すると通常入力料金の1.35倍で、2回送信する場合の2倍より安くなります。1回の書き込みと9回の読み取りで構成される10リクエストは2.15倍で、キャッシュなしの10倍と比べて大幅に安くなります。
| プレフィックスを共有するリクエスト数 | キャッシュなし | 30分キャッシュ | 12時間キャッシュ | 30分キャッシュでの節約率 |
|---|---|---|---|---|
| 1 | 1.00× | 1.25× | 2.50× | −25% |
| 2 | 2.00× | 1.35× | 2.60× | 33% |
| 10 | 10.00× | 2.15× | 3.40× | 79% |
| 100 | 100.00× | 11.15× | 12.40× | 89% |
12時間の有効期間が意味を持つのは、リクエストの間隔が30分より長いものの、プレフィックスが何度も再利用される場合だけです。たとえば、トラフィックの少ない社内ツールが就業時間中ずっと参照する大きな製品マニュアルなどです。
OpenAIは、短いプレフィックスを最低長まで水増しすべきタイミングも説明しています。最低1,024トークン、読み取り0.1倍、書き込み1.25倍の場合、元のプレフィックスが 102.4 + 1,177.6 / N トークン(Nはリクエスト数)より長ければ、水増ししたほうが安くなります。10リクエストなら、221トークン以上のプレフィックスを1,024トークンに拡張すると元が取れます。
計算例
gpt-6.1-sol を使うサポートアシスタントが1日50,000リクエストを処理するとします。各リクエストは8,000トークンの安定したプレフィックス(指示、ツール定義、ポリシー文書)と500トークンのユーザーメッセージを送り、400トークンの回答を受け取ります。トラフィックは安定しているため、30分キャッシュは1日に約48回書き直されます。
| 1日あたりの費用項目 | キャッシュなし | 明示的キャッシュあり |
|---|---|---|
| 安定したプレフィックス | 400M × $2.00 = $800.00 | 書き込み:0.38M × $2.50 = $0.96、読み取り:399.6M × $0.10 = $39.96 |
| ユーザーメッセージ | 25M × $2.00 = $50.00 | 25M × $2.00 = $50.00 |
| 出力 | 20M × $10.00 = $200.00 | 20M × $10.00 = $200.00 |
| 合計 | $1,050.00 | ≈ $290.92 |
1日の請求額は約72%減ります。出力の行は両方の列で同じなので、キャッシュが機能し始めたら、次に効くのは回答を短くすることです。
なぜここで明示モードを使うのでしょうか。暗黙モードではブレークポイントが最新メッセージの末尾に置かれるため、毎回変わる500トークンのユーザーメッセージも1.25倍でキャッシュに書き込まれます。この例では1日約12.50ドルの上乗せになります。明示モードなら安定したプレフィックスの直後でキャッシュ書き込みを終えられるため、ユーザーメッセージは通常の入力料金で課金されます。
設定方法
暗黙キャッシュの恩恵を受けるのにコードは不要です。制御したい場合はResponses APIを使います。次のリクエストは、共有の指示を12時間、セッションのコンテキストを30分キャッシュし、現在の質問はキャッシュしません:
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"prompt_cache_options": { "mode": "explicit", "ttl": "30m" },
"input": [
{ "role": "developer", "content": [
{ "type": "input_text", "text": "<shared instructions and policy docs>",
"prompt_cache_breakpoint": { "mode": "explicit", "ttl": "12h" } } ] },
{ "role": "user", "content": [
{ "type": "input_text", "text": "<session context>",
"prompt_cache_breakpoint": { "mode": "explicit" } },
{ "type": "input_text", "text": "What is the refund window for annual plans?" } ] }
]
}'
すべてのレスポンスからキャッシュ関連のフィールドを読み取り、ログに記録します:
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(model="gpt-6.1-sol", input=[...]) # same input as above
d = resp.usage.input_tokens_details
print("input:", resp.usage.input_tokens)
print("cache reads:", d.cached_tokens)
print("cache writes:", d.cache_write_tokens)
hit_rate = d.cached_tokens / max(resp.usage.input_tokens, 1)
print(f"token cache-hit rate: {hit_rate:.0%}")
prompt_cache_options に対応するモデルでは、cache_write_tokens_details が書き込みを ttl_30m_tokens と ttl_12h_tokens に分けて表示します。報告される cached_tokens は128の倍数に切り捨てられます。OpenAIはヒット率を追跡するPrompt Caching Dashboardと、ミスの原因を説明するPrompt Cache Diagnosticsツールも提供しています。
ヒット率を高めるプロンプト設計のルール
- 静的な内容を先に、動的な内容を最後に。 指示、ツールスキーマ、few-shotの例、参照文書を先頭に置きます。ユーザーのメッセージ、検索で取得したスニペット、日付やIDを含むものは末尾に置きます。
- ツールリストを固定する。 ツール定義を変えるとプレフィックスが崩れます。リクエストごとに必要なツールが違う場合は、定義を固定したまま呼び出し可能なツールだけを切り替えます。
- 書き換えずに追記する。 マルチターンの会話では、新しいターンを末尾に追加します。以前のターンを要約したり編集したりするとキャッシュが無効になります。
- 設定を安定させる。 モデル、推論設定、その他のリクエストオプションはレンダリングされるプレフィックスを変える可能性があります。キャッシュ対象のトラフィックでは固定してください。
- フォールバックに注意する。 別のモデルやプロバイダーにフェイルオーバーすると、キャッシュは空の状態から始まります。キャッシュの局所性を失わずにフェイルオーバーする方法は、モデルフォールバックのプレイブックで解説しています。
OpenAI、Anthropic、Geminiのプロンプトキャッシュ比較
キャッシュはプロバイダー間で持ち運べません。仕組みも料金も異なります:
| OpenAI(GPT-5.6以降) | Anthropic Claude | Google Gemini | |
|---|---|---|---|
| デフォルト | 自動 | cache_control でオプトイン(自動またはブロック単位) |
Gemini 2.5以降は暗黙キャッシュが自動 |
| 最低プレフィックス | 1,024トークン | 現行モデルで512トークン | Gemini 4 Argonと3.8 Flashで4,096トークン |
| 書き込み料金 | 1.25倍(30分)または2.5倍(12時間) | 1.25倍(5分)または2倍(1時間) | 暗黙キャッシュは書き込み料金なし、明示キャッシュは時間単位のストレージ料金 |
| 読み取り料金 | 0.1倍(GPT-6.1 Solは0.05倍) | 0.1倍(Opus 5.5とSonnet 5.5は0.05倍) | 例:Gemini 4 Argonで入力$2.00に対し$0.10 |
| 使用量フィールド | cached_tokens、cache_write_tokens |
cache_read_input_tokens、cache_creation_input_tokens |
total_cached_tokens |
出典:Anthropicプロンプトキャッシュのドキュメント、Claude APIの料金、Geminiコンテキストキャッシュ、Gemini APIの料金。いずれも2026年10月25日に確認しました。Gemini 4 Argonは暗黙キャッシュのみに対応しています。明示的なキャッシュオブジェクトは、対応するGemini 3と2.5のモデルで generateContent を通じて利用でき、ストレージは100万トークン・1時間あたりで課金されます(例:Gemini 3.8 Flashでは2026年12月31日まで$0.50)。DeepSeekも自動でキャッシュします。詳しくはDeepSeekのキャッシュガイドを参照してください。
7日間のキャッシュROIチェック
キャッシュが成功したと判断する前に、実際のトラフィックで測定しましょう:
- 1日目: 長い共有プレフィックスを持つ大量処理のワークフローを1つ選びます。リクエストごとに入力トークン、
cached_tokens、cache_write_tokens、出力トークン、レイテンシを記録します。 - 2〜3日目: 静的な内容をすべて先頭に移し、そこから動的な値を取り除きます。変更前後のトークンキャッシュヒット率(キャッシュ済みトークン ÷ 入力トークン)を比較します。
- 4〜5日目: 書き込みが多く読み取りが少ない場合、30分のエントリにはトラフィックがまばらすぎます。安定した層で
"12h"を試すか、より多くのリクエストが共有できるようにプレフィックスを統合します。 - 6〜7日目: トークン単価だけでなく、採用された回答1件あたりの実際のコストを計算します。ユーザーに却下される安いリクエストは節約になりません。
安定したチャットやエージェントのワークロードでの目安は、トークンキャッシュヒット率60%超、読み取りが書き込みの10倍以上です。こうしたビューの作り方は、LLM APIオブザーバビリティガイドとトークン使用量ダッシュボードガイドで紹介しています。
Flatkeyの役割
Flatkeyは、OpenAI、Claude、Gemini、DeepSeek、Qwenなどのモデルを1つのキーと1つの残高で使えるOpenAI互換ルーターです。プロバイダー側のキャッシュは各プロバイダーのルールに従うため、キャッシュヒットを得たい場合はモデルごとにプロンプトを安定させ、リクエストのたびにモデルを切り替えないようにしてください。まずはルーターのクイックスタートから始め、最新の料金はFlatkeyの料金ページで確認し、その他の削減方法はAI APIコスト最適化ガイドを参照してください。
よくある質問
OpenAIのプロンプトキャッシュは自動ですか?
はい。対応するOpenAIモデルではプロンプトキャッシュがデフォルトで有効になっており、キャッシュヒットを得るためにコードを変更する必要はありません。GPT-5.6以降では明示モードに切り替え、prompt_cache_breakpoint でブレークポイントを指定できます。
OpenAIのプロンプトキャッシュでどれくらい節約できますか?
キャッシュ済み入力は、ほとんどの現行モデルで通常入力料金の0.1倍、GPT-6.1 Solでは0.05倍で、キャッシュ部分は90〜95%の割引になります。全体の節約額は、各プロンプトのうち共有プレフィックスが占める割合と、その再利用頻度によって決まります。
キャッシュに必要なプロンプトの最低長は?
GPT-5.6以降は1,024トークンです。それ以前のモデルではリクエストの設定によって異なります。短いプレフィックスはエラーにならず、通常どおり処理されます。
OpenAIのプロンプトキャッシュはどれくらい保持されますか?
GPT-5.6以降では、エントリはデフォルトで最低30分、ttl を "12h" に設定すると最低12時間保持されます。それ以前のモデルでは、in_memory は非アクティブ状態で約5〜10分(最長1時間)、24h は最長24時間保持できます。
プロンプトキャッシュでレイテンシは下がりますか?
はい。キャッシュ済みプレフィックスを再利用すると再計算を省けるため、特に長いプロンプトで最初のトークンまでの時間が短くなります。
キャッシュへの書き込みに料金はかかりますか?
GPT-5.6以降ではかかります。30分の書き込みは入力料金の1.25倍、12時間は2.5倍です。これはそのトークンの通常の入力料金に置き換わるもので、上乗せではありません。
prompt_cache_keyとは何ですか?
関連するリクエストをまとめて同じキャッシュにルーティングするための任意のパラメーターです。GPT-5.6より前のモデルではヒット率を高めます。OpenAIは1つのキーあたり毎分約15リクエストを推奨しています。
出典
- OpenAIプロンプトキャッシュガイド(2026年10月25日確認)
- OpenAI APIの料金(2026年10月25日確認)
- Anthropicプロンプトキャッシュ(2026年10月)
- Claude APIの料金(2026年10月)
- Geminiコンテキストキャッシュ(2026年10月)
- Gemini APIの料金(2026年10月)
- DeepSeekコンテキストキャッシュ(2026年10月)


