AI API料金表は、そのまま比べると間違える|日本語1.42倍・値上げ期限・トークナイザー差を実測
AI APIの料金比較記事は、どれも100万トークンあたりの単価を並べています。しかしその表を信じて予算を組むと、実際の請求額は想定とずれます。
理由は3つあります。いずれも公式ページに書かれているか、実際に測れば分かることですが、単価表からは見えません。
この記事では、各社の公式価格ページを2026年8月25日に取得し、トークン数を実際に測定した結果を示します。測定に使ったスクリプトも全文を載せるので、同じ手順で再現できます。
結論
- 日本語は英語の1.42倍のトークンを消費する(実測値。同じ内容の文章で比較)
- OpenAIとGoogleのプロモ価格には期限がある。Geminiは2027年1月1日から入力・出力とも2倍になる
- モデル世代でトークナイザーが違う。Anthropicは公式に「Claude 4.7以降は約30%多いトークンを生成する」と明記している
単価が安いモデルを選んでも、消費トークンが増えれば請求額は増えます。比べるべきは単価ではなく「単価 × 実際に消費するトークン数」です。
1. 主要3社の料金(2026年8月25日時点)
各社の公式価格ページから取得した数値です。すべて100万トークンあたり、米ドル。
OpenAI
| モデル | 入力 | キャッシュ入力 | 出力 |
|---|---|---|---|
| gpt-5.6-sol | $4.00 | $0.40 | $20.00 |
| gpt-5.6-terra | $2.00 | $0.20 | $12.00 |
| gpt-5.6-luna | $0.20 | $0.02 | $1.20 |
| gpt-5.3-codex | $1.75 | $0.175 | $14.00 |
長いコンテキストでは単価が変わります。 gpt-5.6-solの場合、long context では入力$8.00・出力$30.00と、短いコンテキストの2倍・1.5倍になります。この点は単価表の見出しを見落とすと確実に読み違えます。
Anthropic
| モデル | 入力 | キャッシュヒット | 出力 |
|---|---|---|---|
| Claude Fable 5 | $10.00 | $1.00 | $50.00 |
| Claude Opus 5 | $5.00 | $0.50 | $25.00 |
| Claude Sonnet 5 | $2.00 | $0.20 | $10.00 |
| Claude Haiku 4.5 | $1.00 | $0.10 | $5.00 |
Google Gemini
| モデル | 入力 | 出力 | 備考 |
|---|---|---|---|
| gemini-3.7-flash | $0.75 | $3.75 | 2026年12月31日まで。以降$1.50 / $7.50 |
| gemini-3.6-flash | $0.75 | $3.75 | 2026年12月31日まで。以降$1.50 / $7.50 |
| gemini-3.5-flash | $1.50 | $9.00 | |
| gemini-3.5-flash-lite | $0.30 | $2.50 | |
| gemini-2.5-flash-lite | $0.10 | $0.40 |
いずれも無料枠が用意されています。
2. 落とし穴:日本語は英語の1.42倍トークンを食う
料金は「文字数」ではなく「トークン数」で決まります。そして日本語と英語では、同じ内容でもトークン数が大きく違います。
同じ意味の日本語文と英語文を3組用意し、OpenAIのトークナイザーで実測しました。
実測結果(o200k_base / GPT-4o以降)
| サンプル | 日本語 | 英語 | 日本語 ÷ 英語 |
|---|---|---|---|
| 技術文書 | 74 トークン | 53 トークン | 1.40倍 |
| 説明文 | 67 トークン | 48 トークン | 1.40倍 |
| 会話 | 43 トークン | 29 トークン | 1.48倍 |
| 合計 | 184 トークン | 130 トークン | 1.42倍 |
1トークンあたりの文字数は、日本語1.46文字に対して英語4.83文字でした。英語は1トークンでほぼ1単語を表現できるのに対し、日本語は1文字がまるごと1トークンを超えることも珍しくありません。
つまり、公式の単価表は英語圏を基準にした数字として読む必要があります。日本語で使うなら、単価に約1.4倍を掛けたものが実質的なコストです。
何が起きるか
gpt-5.6-terra(入力$2.00)で、月に1,000万文字の日本語を処理する場合を試算します。
実測の日本語1トークン=1.46文字で換算すると、1,000万文字は約685万トークン。入力コストは約$13.7です。
同じ内容を英語で処理すれば、1トークン=4.83文字なので約207万トークン、約$4.1。同じ内容でも3.3倍の差になります(文字数ベースで比較した場合)。
3. 落とし穴:モデル世代でトークナイザーが変わる
同じ会社でも、モデル世代によってトークナイザーが違います。ここが最も見落とされます。
OpenAI:新しいほど日本語に有利
旧トークナイザー(cl100k_base / GPT-4・GPT-3.5-turbo世代)でも同じ測定をしました。
| トークナイザー | 日本語 | 英語 | 日本語÷英語 | 日本語1トークンあたり |
|---|---|---|---|---|
| cl100k_base(旧) | 253 トークン | 131 トークン | 1.93倍 | 1.06文字 |
| o200k_base(新) | 184 トークン | 130 トークン | 1.42倍 | 1.46文字 |
日本語のトークン数が27%減っています。 英語はほぼ変わりません(131→130)。つまりこの改善は、ほぼ日本語をはじめとする非英語圏のためのものです。
古い世代のモデルを使い続けている場合、日本語では単価以上に損をしている可能性があります。
Anthropic:新しいほどトークンが増える
逆方向の動きもあります。Anthropicは公式ドキュメントで、Claude 4.7以降とClaude Mythos Previewについて、新しいトークナイザーが同じテキストで約30%多いトークンを生成すると明記しています。実際の増加率は内容と処理の形によって変わるとされています。Claude Sonnet 4.6以前は従来のトークナイザーです。
これは性能向上と引き換えの設計です。ただし料金の観点では、単価が同じでもトークンが30%増えれば請求は30%増えます。世代間で単価だけを比較すると、この分を丸ごと見落とします。
4. 落とし穴:プロモ価格には期限がある
現在の単価には、期限付きのものが混ざっています。3社の方針は現時点で真逆です。
| 提供元 | 内容 | 期限 |
|---|---|---|
| gemini-3.7-flash / 3.6-flash の入力$0.75・出力$3.75 | 2026年12月31日まで。翌日から$1.50 / $7.50(2倍) | |
| OpenAI | GPT-5.6 Sol のプロモーション価格 | 2026年11月21日まで(少なくともこの日まで提供と明記) |
| Anthropic | Claude Sonnet 5 の$2 / $10 | 値上げ撤回。2026年9月1日に予定されていた$3 / $15への引き上げは行われず、標準価格になった |
Geminiで年間予算を組んでいる場合、2027年1月から該当モデルのAPI費用が2倍になります。これは公式価格ページの表の下に注記されている情報で、単価表だけを転記した比較記事には載りません。
5. では、どう比べればいいか
単価表を見る前に、次の4つを確認してください。
- そのモデルのトークナイザーは何世代か — 同じ会社でも世代で変わる
- その単価に期限はついていないか — 表の下の注記を必ず読む
- コンテキスト長で単価が変わらないか — OpenAIは長コンテキストで最大2倍
- キャッシュを使えるワークロードか — キャッシュヒットは入力の1/10程度になる場合がある
そのうえで、自分の実際の入力テキストでトークン数を測ることを勧めます。日本語・英語の比率、専門用語の量、コードの有無で結果は変わります。汎用のベンチマークより、自分のデータで測った数字のほうが正確です。
測定条件と再現方法
| 項目 | 内容 |
|---|---|
| 測定日時 | 2026年8月25日 11:44 JST |
| ライブラリ | tiktoken 0.14.0 |
| 対象 | o200k_base、cl100k_base |
| サンプル | 同一内容の日英ペア3種(技術文書・説明文・会話) |
| 料金の取得元 | 各社公式価格ページ(2026年8月25日取得) |
測定に使ったスクリプトの全文です。pip install tiktoken のうえで実行すれば、同じ結果が得られます。
import tiktoken
PAIRS = [
("技術文書",
"このAPIは、リクエストを受け取ってから応答を返すまでの時間を計測します。"
"接続に失敗した場合は3回まで再試行し、それでも失敗した場合はエラーを記録して終了します。"
"測定結果はJSON形式で保存され、後から集計できます。",
"This API measures the time from receiving a request to returning a response. "
"If the connection fails, it retries up to three times, and if it still fails, "
"it logs an error and exits. Measurement results are saved in JSON format so they "
"can be aggregated later."),
]
for name in ("o200k_base", "cl100k_base"):
enc = tiktoken.get_encoding(name)
for label, ja, en in PAIRS:
nja, nen = len(enc.encode(ja)), len(enc.encode(en))
print(f"{name} {label}: 日本語 {nja} / 英語 {nen} = {nja/nen:.2f}倍")
注記
- 料金は2026年8月25日時点で各社公式ページに掲載されていた数値です。変更される可能性があるため、実際の利用前に公式情報をご確認ください
- Anthropic・Googleのトークナイザーによる実測は、APIキーを必要とするため本記事には含めていません。未検証です。本記事の実測値はOpenAIのトークナイザーによるものです
- 日本語と英語の比較は「同じ意味の文章」で行っています。翻訳の仕方によって多少前後します