
AI APIの料金とレート制限を見積もる|本番前の型
PoCはうまく動いた。デモでも「いいね」と言ってもらえた。 ほっとしたのも束の間、上司やクライアントから飛んでくるのはこの一言です——「で、本番に出したら月いくらかかるの?」「急にアクセスが増えても止まらない?」。
そこで言葉に詰まってしまう。動かすことはできたのに、いくらかかるかは答えられない。これは技術力の問題ではありません。AIのAPIは、これまでのサーバー費用とはお金のかかり方が違うので、最初は誰でも見積もりに戸惑います。
しかも料金は「トークン」という見慣れない単位で決まり、アクセスが集中すれば「レート制限」という見えない壁にぶつかる。どちらも事前に手を打てるのに、知らないまま本番に出すと、月末の請求や障害で初めて気づくことになります。
この記事は、AI APIを業務システムに載せる前に、コストとレート制限を自分の手で見積もり、上振れにも耐えられるよう備えるための型を整理したものです。難しい数式は使いません。一度わかれば、次からは数分で見積もれるようになります。一緒に順番に見ていきましょう。
結論:AI APIの見積もりは、①1回の処理のトークン数を実測する → ②単価をかけて1回あたりの原価を出す → ③想定の利用回数をかけて月額にする、の3ステップで土台が作れます。これにレート制限(1分あたりのリクエスト数とトークン数)を重ね、実測値の2〜3倍を「上振れの余白」として持たせると、本番でも慌てません。料金も制限も提供元の公式ページで最新値が確認できるので、推測ではなく一次情報で固めるのが安全です。最後のチェックリストを、本番GOの前の一呼吸に使ってください。
ここで扱うのは特定サービスに依存しない共通の考え方です。Claude でも GPT でも Gemini でも、料金体系は「入力トークン+出力トークン」で、制限は「1分あたりの回数・量」で表されるという骨格は同じです。具体的な単価や上限はサービス・モデル・契約で変わるため、数値は必ず各社の公式の料金・レート制限ページで最新を確認する前提で読んでください。
なぜAI APIの見積もりは難しく感じるのか

見積もりが難しく感じるのには、はっきりした理由があります。これまでのインフラ費用と、お金のかかり方の「形」が違うのです。
- 従量制で、使うほど積み上がる:サーバーのように「月◯円の固定」ではなく、リクエストの量に比例して増えます。使われ方が読めないと総額も読めません。
- 単位が「トークン」で直感が効かない:料金は文字数でも回数でもなく、トークンという単位で決まります。日本語ではおおむね1文字が1〜2トークン程度になることが多いですが、内容によって変わるので、感覚では当てられません。
- 入力と出力で単価が違う:多くのサービスは、AIに渡す入力と、AIが返す出力で別々に課金し、出力のほうが単価が高いことがよくあります。「短く聞いて長く答えさせる」使い方はコストが膨らみやすい、ということです。
- コストと制限は別の話:「お金が足りるか(料金)」と「さばききれるか(レート制限)」は別問題です。両方を見ないと、片方が大丈夫でももう片方で詰まります。
裏を返せば、トークン数さえ実測できれば、あとは掛け算で見積もれるということです。やみくもに不安がる必要はありません。順に分解していきます。
ステップ1:1回の処理のトークン数を実測する
すべての出発点は「1回の処理で、入力と出力がそれぞれ何トークンか」です。ここを推測で済ませると、後の計算が全部ずれます。
幸い、ほとんどのAPIはレスポンスにトークン使用量(usage)を返します。入力トークン数と出力トークン数が、リクエストごとに記録できる形で入っています。これを使わない手はありません。
なお、すでに本番ログ(usage付き)が貯まっている現場なら、わざわざ回し直さなくても既存ログを後追いで集計するだけで十分です。以下はゼロから測る場合の手順として読んでください。
- 代表的な処理を5〜10回、実際に動かす:本番で一番多く流れるであろう典型パターンを選びます。短い問い合わせと長い問い合わせが両方あるなら、それぞれ数回ずつ。
- usageの入力・出力トークンを記録する:レスポンスに含まれる使用量を、毎回ログに残します。PoCのコードに数行足すだけで足ります。
- 平均と「重い側」を出す:平均値だけでなく、一番トークンを食ったケース(重い側)も控えておきます。後で余白を見積もるときに効きます。
ここで大事なのは、「実データに近い入力で測る」ことです。短いサンプルだけで測ると、本番で長い文書やコードを渡したときに何倍にもなって驚くことになります。最小化(不要なデータを渡さない)は安全面だけでなくコスト面でも効くので、渡す情報の量はこの段階で一度見直しておくとよいです(関連:社内データをAIに渡す前の線引き)。
ステップ2:単価をかけて「1回あたりの原価」を出す
トークン数がわかれば、あとは公式の単価をかけるだけです。料金は通常、「1Mトークン(100万トークン)あたり◯◯」という形で示されます。入力と出力で単価が違うので、別々に計算して足します。
1回あたりのコストは、こう分解できます。
1回あたり =(入力トークン数 × 入力単価)+(出力トークン数 × 出力単価)
具体的な数字でイメージをつかみましょう。以下の単価はあくまで計算手順を示すための仮の値です(実際の単価は必ず公式で確認してください)。仮に、入力が1Mトークンあたり300円、出力が1Mトークンあたり1,500円のモデルを使うとします。1回の処理が入力2,000トークン・出力500トークンだったなら:
- 入力:2,000 ÷ 1,000,000 × 300円 = 0.6円
- 出力:500 ÷ 1,000,000 × 1,500円 = 0.75円
- 1回あたり合計 = 約1.35円
ここで気づいてほしいのは、出力トークンは入力の4分の1の量なのに、コストはほぼ同じという点です。出力単価が高いと、量が少なくても効いてきます。「長く喋らせる」設計はコストに直結する、という感覚をここで持っておくと、後の最適化が効きます。
補足:同じ処理でも、使うモデルのグレードで単価は何倍も変わります。高性能モデルは賢い代わりに高く、軽量モデルは安い代わりに苦手な処理もあります。「この処理に、その賢さは本当に要るか」を1回あたりの原価と一緒に考えると、現実的な選択ができます。
ステップ3:利用回数をかけて月額にする
1回あたりの原価が出たら、想定の利用回数をかけて月額の目安にします。
月額の目安 = 1回あたりの原価 × 1日の処理回数 × 稼働日数
先ほどの「1回約1.35円」で、1日2,000回・月20日稼働なら:
- 1.35円 × 2,000回 × 20日 = 約54,000円/月
ここで効いてくるのが、利用回数の前提をどう置くかです。「1日2,000回・月20日」はあくまで計算例で、この数字を鵜呑みにする必要はありません。回数は、すでにある事実から逆算するのが確実です。たとえば既存システムの1日のアクセス数、問い合わせ件数、対象ユーザー数×1人あたりの利用回数——こうした手元の実績に「AIを通す割合」をかければ、自分の現場の回数が出ます。逆算のもとが何もないときだけ、控えめな仮置きから始めて運用ログで補正していきます。回数はたいてい不確実なので、「控えめ・想定・強気」の3つのシナリオで出しておくと、説明がぐっと楽になります。「想定では月5万円ほど、強気に伸びても月15万円までに収まる見込みです」と幅で言えると、相手も安心して判断できます。1つの数字で出すより、はるかに誠実で実務的です。
| 見積もりの観点 | 何を確認するか | つまずきやすい点 |
|---|---|---|
| 入力トークン | 実データに近い入力で実測したか | サンプルが短すぎて本番で膨らむ |
| 出力トークン | 出力の長さを実測・上限設定したか | 出力単価が高く、想定外に効く |
| 利用回数 | 控えめ/想定/強気で幅を持たせたか | 1シナリオだけで上振れに無防備 |
| モデル選択 | 処理に見合うグレードか | 高性能モデルを一律に使い割高 |
| 隠れた繰り返し | リトライ・再生成の分を見たか | 失敗時の再呼び出しが計上漏れ |
最後の行の「隠れた繰り返し」は見落としがちです。タイムアウトでのリトライ、ユーザーによる「もう一回」、内部での多段呼び出し(1つの依頼で複数回APIを叩く設計)など、実際の呼び出し回数は表に見える回数より多くなりがちです。見積もりにはこの分の余白も足しておきます。
コストを下げる4つのレバー
見積もって「ちょっと高いな」となったとき、闇雲に機能を削る前に試せる定番の手があります。どれも一次情報で対応状況を確認してから使ってください。
なお現場では、稟議や予算で月額の上限金額が先に決まっていることも多いはずです。その場合は、レバーを試すより先に提供元の予算アラート・上限設定で「ここを超えたら止める/通知する」というガードを引いてから、その枠内に収まるよう設計する、という順番のほうが実務に合います。上限を先に引けば、見積もりが多少ぶれても請求が暴走することはありません。
- 出力を短く・構造化する:出力単価が高いので、ここが一番効きます。「200字以内で」「箇条書きで」と指示し、出力の最大トークン数に上限を設定する。冗長な前置きを返させないだけで目に見えて下がります。
- プロンプトキャッシュを使う:毎回同じ前提(システム指示・長い参照文書)を送るなら、その共通部分をキャッシュできる仕組みを多くのサービスが用意しています。繰り返し送る固定部分の入力コストを抑えられます。
- バッチ処理でまとめる:即時の応答が要らない処理(夜間の一括分類など)は、まとめて投げる「バッチ」を使うと割安になる場合があります。リアルタイム性と引き換えにコストを下げる選択肢です。
- 処理ごとにモデルを使い分ける:すべてを高性能モデルでやらない。簡単な分類や整形は軽量モデル、難しい判断だけ高性能モデル、と振り分けると全体コストが下がります。
どれも「品質を落とさずに無駄だけ削る」方向の工夫です。削ったあとは、出力の質が落ちていないかを必ず人の目で確認してから本番に反映してください。
レート制限——「いくらか」とは別の壁

お金が足りても、短時間にリクエストが集中すると「レート制限」に当たって処理が弾かれます。これはコストとは独立した壁で、ここを見ていないとアクセス集中時に機能が止まります。
レート制限は、おおむね次の軸で設定されています(呼び方は提供元で異なります)。
- 1分あたりのリクエスト数(RPM):回数の上限。たくさんの小さな処理を高頻度で投げると、ここに先に当たります。
- 1分あたりのトークン数(TPM):流せる総量の上限。長い文書を扱う処理は、回数が少なくてもここに当たります。
- 同時実行数:一度に並行して処理できる数。
- 段階(ティア)で上限が変わる:利用実績や契約に応じて上限が引き上げられる仕組みのことが多いです。始めたばかりのアカウントは上限が低いことがあるので、本番前に自分のティアの上限を必ず確認します。
見積もりのときは、「ピーク時の1分間に、何リクエスト・何トークン流れるか」を出して、上限と突き合わせます。1日の合計が制限内でも、特定の1分に集中すれば当たる——ここが見落としポイントです。1日2,000回でも、昼休みの数分に半分が集中するなら、その瞬間のRPMで考える必要があります。
上振れに耐える——本番前にしておく設計
レート制限やエラーは「起きる前提」で設計しておくと、本番で慌てません。ただしどこまで作り込むかはトラフィック規模で変わります。下の3つを「全部必須」と身構える必要はありません。
最低ラインは1つ目のリトライです。社内利用や問い合わせの少ない業務システムのように低頻度で外部公開もないなら、「リトライ+出力トークンの上限+必要なら上限引き上げ申請」だけで十分に本番へ出せます。キューやフォールバックを無理に足すとオーバースペックになりがちです。2つ目・3つ目が効くのは、ピークに集中する/外部に公開する/止まると業務が回らないといった、上振れの影響が大きい場合。自分の現場がどちらかを見極めてから、必要な分だけ用意してください。
- リトライ(指数バックオフ)【最低ライン】:制限に当たったら、少し待ってから再試行する。待ち時間を少しずつ延ばす「指数バックオフ」が定番です。ただしむやみなリトライはコストと制限を二重に悪化させるので、回数の上限は必ず決めます。
- キューで平準化する【ピーク集中があるなら】:急な集中をいったんキュー(待ち行列)で受け、一定ペースでAPIに流す。ピークを均すだけで、制限超過もコストの瞬間的な跳ね上がりも防げます。即時性が要らない処理ほど効きます。
- フォールバックを決めておく【止まると困るなら】:それでも捌けない・APIが落ちたときに、どう振る舞うか。「軽量モデルに切り替える」「キャッシュ済みの結果を返す」「『混み合っています』と正直に伝えて後で処理する」など、止まる代わりの逃げ道を一つ用意しておきます。
ここまで来ると、見積もりは単なる金額の話ではなく、「この設計で、想定の何倍まで耐えられるか」という運用の話になります。規模に見合った備えができていれば、本番GOの判断はぐっと確かなものになります。
明日からやること(小さく始める3つ)
一度に完璧な見積もりモデルを作ろうとすると手が止まります。まずこの3つから。
- PoCのコードにusageのログを足し、代表処理を5回まわす:入力・出力トークンの実測値を手に入れる。これが全ての土台です。
- 公式の料金ページで、使うモデルの入力・出力単価を確認して掛け算する:1回あたりの原価を出し、「控えめ/想定/強気」で月額を3通り出してみる。
- 使うモデル・ティアのレート制限(RPM・TPM)をメモし、ピーク1分の想定と突き合わせる:足りなそうなら、上限引き上げ申請かキュー導入を検討リストに入れる。
この3つができていれば、「月いくら?」「集中したら大丈夫?」に、推測でなく根拠を持って答えられます。
本番前チェックリスト
コピーして、本番GOを判断する前の確認に使ってください。全部を一度に埋める必要はありません。まず【必須】の最低ラインを満たせば、社内利用・低頻度の業務システムならこれだけで本番に出せます。【条件付き】は、自分の現場が免除条件に当てはまるなら飛ばして構いません。
【必須】これだけは——最低ライン(5点)
- 実データに近い入力で、入力・出力トークンを実測したか(既存ログの集計でも可)
- 入力・出力それぞれの公式単価で1回あたりの原価を出したか
- 出力の最大トークン数に上限を設定したか
- 使うモデル・ティアのRPM・TPMの上限を確認したか(足りなければ上限引き上げ申請)
- リトライ(指数バックオフ+回数上限)を実装したか
【推奨】余裕があれば精度を上げる
- 利用回数を、既存のアクセス数・問い合わせ件数などから逆算したか
- リトライ・再生成など「隠れた繰り返し」の分を上乗せしたか
- 処理に見合ったモデルグレードを選べているか(一律に高性能を使っていないか)
- 料金・制限の数値を、推測でなく公式の最新情報で確認したか
【条件付き】ピーク集中・外部公開・止まると困る場合に実施 (免除条件:低頻度かつ社内向けで、上限引き上げ申請でさばける見込みなら不要)
- 利用回数を「控えめ/想定/強気」の3シナリオで出したか
- ピーク時の1分あたりのリクエスト数・トークン数を見積もったか
- 急な集中をならすキュー、または流量制御を用意したか
- APIが詰まった/落ちたときのフォールバックを決めたか
- 上振れ時に「いくらまで・どこまで耐えるか」を言葉で説明できるか
最後に
「月いくらかかるか」に即答できないのは、いい加減だからではありません。 AIのAPIが、これまでとは違うお金のかかり方をするから、最初は誰もが戸惑うだけです。トークンを実測して、単価をかけて、回数をかける——一度この順番を通せば、次からは数分で見積もれるようになります。

数字に幅を持たせ、上振れの余白まで言えるようになれば、それは「動かせた」の次の一歩——安心して本番に出せる段階です。まずはusageのログを1行足すところから。 関連して、「AIで何とかしろ」と言われたとき最初に確認することや、AI生成コードのレビュー・検証チェックリストもあわせてどうぞ。気になった所から、ひとつずつ確かめていきましょう。