3行でいうと
- 読み取り(キャッシュヒット)の単価は、各社の料金表で通常の入力の約1割以下、DeepSeekは約2%でした。
- 書き込みに追加料金がかかるのは、AnthropicとOpenAIの新しい世代。Googleは保存時間に課金、DeepSeekは自動で書き込み料金の記載なしです。
- 保持時間は、Anthropicが5分か1時間、OpenAIの新世代が30分(既定)か12時間、Googleの明示キャッシュは既定1時間でした。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や料金ページを読んでまとめたものです。価格は2026年10月22日に読み直しました。変わることがあります。
先に結論
- プロンプトキャッシュは、「毎回同じ前置き(長い指示、資料、道具の定義など)」を何度も送る使い方で効きます。2回目以降の前置きの読み取りが、通常の入力単価の1割以下で済みます。
- ただし、会社ごとに「最初の1回(書き込み)」の扱いが違います。Anthropicは書き込みが通常入力の1.25倍(5分保持)または2倍(1時間保持)。OpenAIのGPT-5.6以降も、30分保持なら1.25倍(12時間保持は2.5倍)です。Googleの明示キャッシュは、読み取りの単価とは別に、保存している時間に対して料金がかかります。
- 「前置きが1文字でも変わると、その先は読み取りにならない」のが共通のルールです。静的な内容を前に、変わる内容を後ろに置く、が設計の基本です。
前提:何の話か
APIは、アプリの中からAIを呼び出す開発者向けの窓口です。トークンは、AIが読み書きする文字の量を数える単位です。この記事の価格は、すべて「100万トークンあたり」の米ドルです。
AIに質問を送るたびに、指示文、参考資料、道具(ツール)の説明といった長い前置き(プレフィックス)を送り直すと、その分の入力料金が毎回かかります。プロンプトキャッシュは、前置きの処理結果を一時的に取っておき、次に同じ前置きが来たときに安い単価で使い回す仕組みです。取っておいた処理結果を使えたことをキャッシュヒット(読み取り)、取っておくための最初の処理をキャッシュ書き込みと呼びます。
出力の文章や、答えの内容は変わりません。Anthropicの文書には、キャッシュは出力トークンにも応答の内容にも影響しないと書かれています。
各社の仕組みの違い
| Anthropic(Claude) | OpenAI | Google(Gemini) | DeepSeek | |
|---|---|---|---|---|
| 指定のしかた | リクエストにcache_controlを付ける(自動方式と、位置を指定する方式) |
既定で自動。GPT-5.6以降は位置を指定する明示モードもある | 暗黙(自動)と明示(自分でキャッシュを作る)の2種類(Gemini 4 Argon以降は暗黙のみ) | 自動(全ユーザーで既定で有効) |
| 保持時間 | 5分(既定)または1時間 | GPT-5.6以降は30分(既定)か12時間。それより前のモデルはin_memoryか24h |
明示キャッシュは未指定なら1時間。暗黙は記載なし | 使われなければ数時間〜数日で自動削除 |
| 最低長 | 多くの新しいモデルで512トークン | GPT-5.6以降は1,024トークン | 3.1 Pro Preview以降の新しいモデルで4,096トークン(暗黙キャッシュの表) | 記載なし |
| 書き込み料金 | あり(1.25倍/2倍) | GPT-5.6以降はあり(30分は1.25倍、12時間は2.5倍) | 保存時間に対して課金 | 料金表に書き込み項目なし |
| 読み取り | 通常入力の0.1倍が基本 | GPT-5.6以降は0.1倍(GPT-6.1 Solは0.05倍) | 料金表の「Context caching」行 | 料金表のcache hit行 |
各社の中身
Anthropic:位置を決めて、5分か1時間
公式のプロンプトキャッシュの文書によると、キャッシュされる範囲は、tools(道具の定義)、system(システム指示)、messages(会話)の順に並べた「前置き」のうち、cache_controlを付けたブロックまでです。
- 自動方式:リクエストの一番上に
cache_control={"type": "ephemeral"}を1つ書くと、会話が伸びるたびに、最後のキャッシュできるブロックへ区切りを自動で動かしてくれます。 - 明示方式:区切り(ブレークポイント)を最大4つまで置けます。一致するか調べるとき、区切りから遡って最大20の位置を確認する、と書かれています。
- 保持時間:既定は5分で、使われるたびに追加料金なしで延長されます。
"ttl": "1h"を付けると1時間になります。1時間と5分を混ぜるときは、1時間のものを前に置きます。 - 同時送信の注意:キャッシュは最初の応答が始まってから使えるので、並列で一斉に送る前に、先に1本送って待つように、と書かれています。
- 確認する値:応答の
usageに、cache_creation_input_tokens(書き込んだ量)、cache_read_input_tokens(読み取った量)、input_tokens(最後の区切りより後ろの、キャッシュされなかった量)が入ります。入力の合計は、この3つの足し算です。
公式文書のコード例の一部です(この記事では実行していません)。
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
cache_control={"type": "ephemeral"},
system="You are a helpful assistant that remembers our conversation.",
messages=[...],
)
print(response.usage.model_dump_json())
OpenAI:既定で自動、新しい世代は書き込みに料金
OpenAIのプロンプトキャッシュの文書によると、対応モデルでは既定でキャッシュが効きます。条件は、前置き全体が一致することです。
- GPT-5.6以降:最低1,024の入力トークン(OpenAI側の見えないシステム用トークンは数えない)。保持時間は
prompt_cache_options.ttlで選びます。"30m"が既定で、書き込みは通常入力の1.25倍です。最後の書き込みまたは再利用から、最低でも30分は保持されます(OpenAIは、指定より長く残すこともある、と書いています)。"12h"も選べて、書き込みは2.5倍です。読み取りは通常入力の0.1倍(GPT-6.1 Solは0.05倍)です。 - 明示モード:
prompt_cache_options.modeをexplicitにして、キャッシュしたいブロックにprompt_cache_breakpointを付けます。1回のリクエストで最大4か所まで書き込めます。区切りを1つも付けなければ、書き込みは起きません。 - それより前のモデル:
prompt_cache_retentionでin_memory(非アクセスで約5〜10分、最大1時間)か24h(通常は約30分、最大24時間)を選びます。GPT-5.5は24hのみ受け付けます。ゼロデータ保持を使っていない組織の既定は24h、使っている組織はin_memoryと書かれています。 prompt_cache_key:前の世代では、関連するリクエストを同じ場所へ振り分けるための値です。ヒットを保証しない、とも書かれています。GPT-5.6以降では任意で、顧客ごとなどに分けて集計したいときに使います。- 確認する値:
usage.input_tokens_details.cached_tokens(読み取り)とcache_write_tokens(書き込み)。
Google(Gemini):暗黙と明示の2種類
Geminiの文書によると、暗黙のキャッシュは、Gemini 2.5以降のモデルで既定で有効です。ヒットは応答のusage.total_cached_tokensで見えます。ただし、この文書は割引の割合を書いていません。「ヒットしたときの節約を自動で渡す」という書き方です。
明示キャッシュは、generateContent APIの文書にあります。
- 保持時間:作るときに
ttlを指定します(例:300s)。指定しなければ1時間です。あとから変えられるのはTTLかexpire_timeだけで、ほかは変更できません。 - 課金:保存は「キャッシュしたトークン数と保存時間」で課金される、と書かれています。
- 最低長:Gemini 2.5 Flash/Proは2,048トークン、Gemini 4 Argon、3.8 Flash、3.6 Flash、3.1 Pro Previewは4,096トークンです。この表は2つの文書に同じ内容で載っていますが、どちらも暗黙のキャッシュの項にあります。generateContentの文書は、明示キャッシュの最低長もモデルで違うと書いていますが、別の表は載せていませんでした。
- キャッシュした中身を、あとから取り出して見ることはできません。
なお、Interactions APIは暗黙のキャッシュだけに対応し、明示キャッシュはgenerateContent APIを使うよう案内されています。同じ文書には、Gemini 4 Argon以降は明示キャッシュに対応しない、とも書かれています。
DeepSeek:自動で、ディスクに残る
DeepSeekのKVキャッシュの文書によると、キャッシュは全ユーザーで既定で有効です。KVキャッシュは、AIが文章を読んだときの計算の途中経過を取っておくものです。
- 仕組み:各リクエストがディスク上のキャッシュを作り、あとのリクエストと前置きが重なる部分がキャッシュヒットになります。完全に一致した単位だけがヒットします。文書の例では、A+Bのあとに A+B+C を送ればヒット、A+Bのあとに A+C を送るとAの部分はまだ保存されていないので外れ、そのあとの A+D はAがヒットします。
- 保証はない:「ベストエフォート」で、100%のヒットは保証しない、と明記されています。
- 保持:構築に数秒かかり、使われないキャッシュは通常、数時間から数日で自動で消えます。
- 確認する値:
prompt_cache_hit_tokensとprompt_cache_miss_tokens。 - この文書には、最低長と価格は書かれていません。価格は料金ページにあります。
数字:各社の料金表
100万トークンあたり、米ドル、2026年10月22日確認です。
| モデル | 通常の入力 | 書き込み | 読み取り | 読み取り/入力 |
|---|---|---|---|---|
| Claude Fable 5.1 | 10 | 12.50(5分)/20(1時間) | 0.25 | 0.025倍 |
| Claude Opus 5.5 | 4 | 5(5分)/8(1時間) | 0.20 | 0.05倍 |
| Claude Sonnet 5.5 | 2 | 2.50(5分)/4(1時間) | 0.10 | 0.05倍 |
| Claude Haiku 5.5(10万トークン以下) | 0.10 | 0.125(5分)/0.20(1時間) | 0.01 | 0.1倍 |
| OpenAI GPT-6 Astra | 10 | 12.50 | 1.00 | 0.1倍 |
| OpenAI GPT-6.1 Sol | 2 | 2.50 | 0.10 | 0.05倍 |
| OpenAI GPT-6 Luna | 0.10 | 0.125 | 0.01 | 0.1倍 |
| Gemini 3.8 Flash(2026年内) | 0.75 | 保存料が別(下記) | 0.075 | 0.1倍 |
| Gemini 3.1 Pro Preview(20万トークン以下) | 2 | 保存料が別 | 0.20 | 0.1倍 |
| Gemini 4 Argon(2026年11月30日まで) | 2 | 保存料の記載は読み取れず(暗黙キャッシュのみ) | 0.10 | 0.05倍 |
| DeepSeek deepseek-flash(空いている時間) | 0.15 | 記載なし | 0.003 | 0.02倍 |
補足です。
- Anthropicの読み取りは、料金ページに「一般に0.1倍、Fable 5.1とMythos 5.1は0.025倍、Opus 5.5とSonnet 5.5は0.05倍」とあります。表の数字は、料金ページとキャッシュの文書で一致しました。
- OpenAIの表は、短いコンテキストの場合です。入力が27.2万トークンを超えると、入力とキャッシュの単価が2倍になる、とGPT-6.1 Solのモデルのページにあります(10月22日に読んだ料金ページの取得では、この記載を見つけられませんでした)。
- OpenAIの12時間保持の書き込みは、通常入力の2.5倍です(GPT-6 Astraが25ドル、GPT-6.1 Solが5ドル、GPT-6 Lunaが0.25ドル。料金ページの表示)。
- Gemini 4 Argonは、2026年12月1日から入力が4ドル、キャッシュの読み取りが0.20ドルになります(料金ページの表示)。
- Geminiの保存料(100万トークンあたり1時間)は、3.8 Flashが2026年内0.50ドル(2027年1月1日から1.00ドル)、3.1 Pro Previewが4.50ドル、3.5 Flash-Liteが1.00ドルです。3.8 Flashの読み取りは、2027年1月1日から0.15ドルになります。
- DeepSeekは、ピーク時間(平日のUTC 1〜4時と6〜10時、中国の祝日を除く)は2倍の単価で、deepseek-flashのキャッシュヒットは0.006ドルです。
同じ作業で、いくらになるか(僕らの計算です)
僕らの計算です。前提は、5万トークンの固定の前置きに、短い質問を20回続けて送る場合です。質問と出力の分は、どの条件でも同じなので入れていません。前置きの入力代だけを比べます。
- Claude Sonnet 5.5、キャッシュなし:5万トークン×2ドル÷100万×20回=2.00ドル。
- Claude Sonnet 5.5、5分キャッシュ(毎回5分以内に次が来る場合):最初の書き込みが0.125ドル。残り19回の読み取りが、5万×0.10÷100万=0.005ドル×19=0.095ドル。合計0.22ドル。
- GPT-6.1 Sol:書き込み2.50ドル、読み取り0.10ドルで、Sonnet 5.5と同じ0.22ドルになります。
- DeepSeek deepseek-flash(空いている時間):キャッシュが全部ヒットしたとして、5万×0.003÷100万=0.00015ドル。ただし最初の1回や外れた回は、miss(0.15ドル)の単価です。
Anthropicの料金ページには「5分の書き込みは1回の読み取りで元が取れる。1時間の書き込みは2回の読み取りで元が取れる」とあります。僕らの計算でも合います。Sonnet 5.5で、5分の書き込み(1.25倍)+読み取り(0.05倍)は1.30倍で、キャッシュなしの2回分(2倍)より安くなります。1時間の書き込み(2倍)は、1回の読み取りでは2.05倍で2倍を超え、2回の読み取りで2.10倍になって、キャッシュなしの3回分(3倍)を下回ります。
Geminiの明示キャッシュは、この記事では合計を出していません。キャッシュを作る最初のリクエストにどう課金されるかを、読んだ文書で確認できていないためです。
選び方・判断の基準
見立てです。次のように整理できると思います。
- 数分おきに同じ前置きで何度も呼ぶ(チャットボット、エージェント、同じ資料への連続質問):どの会社でも効果が大きい使い方です。保持時間が5分〜30分あれば足ります。
- 間隔が数分より長いが、1時間以内には次が来る:Anthropicの1時間保持(2倍の書き込み)や、Googleの明示キャッシュ(既定1時間、保存料つき)が候補になります。ただし、本当に2回以上読み取られるか、見積もってから選ぶのが安全です。
- 1回きりの処理:書き込み料金のぶんだけ、キャッシュは損になる場合があります。AnthropicとOpenAI(GPT-5.6以降)では、使わない書き込みにも1.25倍(Anthropicの1時間は2倍、OpenAIの12時間は2.5倍)がかかるので、意図せず区切りを付けすぎないのが無難です。OpenAIの明示モードは、区切りを付けなければ書き込みが起きない、と書かれています。
- 設計のコツ:公式文書がそろって言っているのは、変わらない部分を前、変わる部分を後ろに置くことです。時刻やユーザーごとの情報は末尾に回します。
よくある失敗・つまずき
- 前置きの途中に、時刻やリクエスト番号を入れてしまい、毎回キャッシュが外れる。
- 最低長に満たない。Anthropicの文書では、短いプロンプトはエラーなしでキャッシュされずに処理されます。
cache_creation_input_tokensとcache_read_input_tokensが両方0かどうかで気づける、と書かれています。 - 道具の定義や
tool_choiceを途中で変える。Anthropicの文書の表では、道具の定義を変えると全体(tools、system、messages)のキャッシュが無効になります。画像の追加・削除やtool_choiceの変更も、一部のキャッシュを無効にします。 - 並列で一斉に送る。最初の応答が始まるまでキャッシュが使えないので、先に1本送ってから残りを送る必要があります(Anthropicの文書)。
- Anthropicで、5分より後に使う。5分を過ぎるとキャッシュは切れます(使われるたびに延長されます)。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。数字と挙動は、公式文書と料金ページの記載です。
- 割引の大きさは、モデルごとに違います。Claudeは0.025倍から0.1倍まで、OpenAIも0.05倍と0.1倍があり、古い世代のモデルは別の単価です。使うモデルの行を料金ページで確認してください。
- Geminiの暗黙キャッシュは、割引の割合が、読んだ文書には書かれていません。表の数字は、料金表の「Context caching」の行に載っている単価です。
- DeepSeekの文書では、最低長と書き込み料金が、読んだページに書かれていません。「書き込み料金がない」とは書かれていないので、ないと断定しません。
- DeepSeekの発表ページ(2026年9月10日)には、2026年9月14日から
deepseek-v4-proのリクエストがV4.1-Flashに振り分けられ、V4.1-Flashの料金になると書かれていました。10月22日に読んだ料金ページには、deepseek-v4-proの別の単価(キャッシュヒット0.022ドル、ミス0.66ドル、空いている時間)も載っていました。発表ページの「V4.1-Flashに振り分ける」という書き方とどう対応するかは、読んだ範囲では分からないため、この表はdeepseek-flashだけのままにしました。 - OpenAIのキャッシュの文書は、GPT-5.6以降とそれ以前でルールが違います。モデルの世代を確認してから読んでください。
- 価格、最低長、保持時間は変わることがあります。Geminiの3.8 Flashは2027年1月1日に価格が変わります。
- AWSなど、ほかの経由で使う場合の扱いは、読んでいません。たとえばAnthropicの文書には、自動キャッシュが旧世代のBedrockでは使えない、とあります。
出典
- Prompt caching(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Pricing(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Prompt caching(OpenAI API、OpenAI、2026年10月22日確認)
- Pricing(OpenAI API、OpenAI、2026年10月22日確認)
- GPT-6.1 Sol(OpenAI API、OpenAI、2026年10月22日確認)
- Context caching(Gemini API、Google AI for Developers、Google、2026年10月22日確認)
- Context caching(generateContent、Google AI for Developers、Google、2026年10月22日確認)
- Gemini Developer API pricing(Google AI for Developers、Google、2026年10月22日確認)
- Context Caching(DeepSeek API Docs、DeepSeek、2026年10月22日確認)
- Models & Pricing(DeepSeek API Docs、DeepSeek、2026年10月22日確認)
- DeepSeek-V4.1-Flash Release(DeepSeek API Docs、DeepSeek、2026年10月22日確認)
更新履歴
- 2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
