OpenRouterの料金・速度・安定性を管理する方法|キャッシュ・ルーティング・計測
OpenRouterを個人開発で使うときの料金、速度、安定性の見方を、Prompt Caching、Batch API、Sticky Routing、provider選び、Classifiers、音声・マルチモーダルAPIから整理します。
公開 2026.07.29 / 更新 2026.09.26
OpenRouterを安く速く使うには、モデル単価だけで決めず、cache hit、providerの待ち時間、Batch APIの非同期条件、fallback、再試行、利用目的を分けて記録します。まず全体像を読み、Prompt CachingとSticky Routing、provider性能とClassifiersの各論へ進んでください。
- 料金・cache・provider routingの判断軸
- Batch APIの適用条件と制約
- provider performanceとClassifiersの役割分担
- Transcription・マルチモーダルAPIの統合範囲
- 特定モデルの最安・最速ランキング
- 未測定の節約率や性能保証
- OpenRouter公式情報にないendpoint・料金の断定
この記事のポイント
- Prompt CachingとSticky Routingは、長い固定入力を繰り返すagent loopで条件が揃ったときに効く
- provider performanceは平均速度だけでなく、latency、throughput、uptime、quantizationを分けて見る
- Batch APIは即時応答が不要な大量request向け。model別の割引、完了時間、input制約、保持期間を先に確認する
- Classifiersは料金を自動で下げる機能ではなく、AI利用を分類してログと集計で観測するBeta機能
- Transcriptionとマルチモーダル入力は一つのbase URLで扱えるが、endpointとcontent typeは同じではない
問題ごとにOpenRouterの機能を選ぶ
| 同じ長文を何度も送る | Prompt Caching。provider・モデル・cache条件とcache hitを確認 |
| 会話を同じproviderへ戻したい | Sticky Routing。session_id、会話単位、fallbackの挙動を確認 |
| 速度・安定性を比べたい | Provider Performance。latency、throughput、uptime、quantizationを同じworkloadで測る |
| 大量の独立requestを急がず処理したい | Batch API。modelごとの対応endpoint、24時間枠、割引、入力制約を確認 |
| どの作業が料金を使ったか知りたい | Classifiers。Betaの分類タグ、sampling、classifier自体の課金を確認 |
| 音声・画像・動画を扱いたい | 同じbase URLでもendpointとcontent typeをモデルごとに分ける |
OpenRouterを安く速く使う答えは、安いモデルを一つ選んで固定することではありません。同じ入力を繰り返すならcache、会話をまたぐならsticky routing、provider差を見たいなら性能指標、使い道と請求を知りたいならClassifiers、というように問題を分けます。
料金を下げる前に、何が繰り返されているかを見る
AIエージェントでは、モデルの入力単価だけでなく、固定system prompt、tool定義、会話履歴、出力、リトライ、fallbackが請求と待ち時間を作ります。Prompt Cachingは同じ長い入力を再利用できる可能性がありますが、cache hitが見えなければ節約したとは言えません。
速度は『最速provider』ではなく、workloadの分布で見る
公式のprovider performance説明では、同じmodelでもprovider endpointごとにlatency、throughput、uptime、quantizationが変わります。平均だけを見ると、たまに極端に遅いp90・p99の尾を見落とします。チャットUI、長文生成、tool call、夜間バッチでは優先する指標が違います。
Batch APIは、待てる大量処理の料金と完了時間を分けて見る
OpenRouter Batch APIは、corpusのlabel付け、evaluationの採点、埋め込みのbackfill、ticketの一括要約など、各requestをすぐ返す必要がない仕事向けです。submission時にproviderが処理時刻を選ぶ24時間のcompletion windowがあり、通常APIよりper-token料金が低くなるmodelがあります。会話UIや同期処理へ使う機能ではありません。
| 確認する点 | Batch APIの条件 | 実装前の判断 |
|---|---|---|
| 値引き | 標準のper-token料金より約50%低いmodelが多いが、割引率はmodelごと。検索などtoken以外の料金が同じ割引とは限らない | 対象modelのpricingと完了後のusage.costで見積もりを確認 |
| 処理時間 | completion windowは24h。requestは非同期で進み、providerがこの枠内で処理時刻を決める | SLAや即時応答として扱わず、遅れても困らないqueueだけを送る |
| routing | batchごとに単一provider。標準ではdata policy、allowlist、BYOK適用後の対応endpointから選ばれる | 利用可能model/providerを確認し、必要ならprovider.onlyを指定 |
| 入力・保持 | 画像・fileは公開URLと対応providerが条件。audio/videoとOpenRouter側のweb search pluginは非対応。OpenRouter側のinput/outputは最長30日保持だがupstreamはprovider次第 | 機密データの方針と両方の保持期間を確認し、terminal状態になったbatchは不要なら削除 |
- モデル一覧で:batch endpoint対応を確認する。同期APIで動くmodelがbatchでも使えるとは限らない
- 1 batchは単一providerで処理され、各requestの失敗は個別結果として返る。custom_idで入力行と結果を対応させる
- OpenRouterのorchestrated web searchはbatchで使えないが、対応するnative provider searchとは区別する
- 24hを待てないtask、audio/video、public URLにできない添付は同期APIなど別の処理経路を選ぶ
Classifiersは、料金を自動で下げる機能ではない
Classifiersは、generationをtask type、agent complexity、department、compliance categoryなどのtaxonomyで分類し、Activityやログで集計するworkspace機能です。分類は元の推論リクエスト後に非同期で行われるため推論経路にlatencyを足さないと公式説明されていますが、classifier modelのtokenは課金対象です。sampling rateを含め、観測コストも一緒に見ます。
Transcription・マルチモーダルは『一つのAPI』でも同じrequestではない
OpenRouterは一つのbase URLでimage、video、audio、embeddings、transcriptionへ接続できます。ただし、画像・音声・動画の入力は主にchat completionsのcontent typeを使い、transcriptionは専用のaudio/transcriptions endpointを使います。音声はbase64入力、動画URL、対応model/providerなど条件が分かれるため、統一APIを完全互換と読み替えないことが重要です。今回は検索意図が親記事と重なるため、Transcription独立記事は増やさず、この親記事と更新メモに確認結果を残します。
| 用途 | 公式に確認できる入口 | 実装前の確認 |
|---|---|---|
| 音声を文字にする | POST /api/v1/audio/transcriptions | base64、model、format、usage.cost、timeout、provider制御の範囲 |
| 音声を理解する | POST /api/v1/chat/completions + input_audio | 対応model、音声形式、content array、provider差 |
| 画像・PDF・動画入力 | 主にchat completions + content type | modelごとの対応、URL/base64、動画URL制限 |
| 画像生成・embeddings・TTS | 専用endpoint | request shape、response形式、価格の単位 |
公式情報と実務的な推論を分けて運用する
- 公式仕様:endpoint、request field、provider routing、cache指標、Beta・GAの表示をsourceと一緒に記録する
- 実務的な推論:自分のworkloadでTTFT、生成速度、エラー、retry、costを同じ条件で比べる
- 環境依存:provider、model、地域、plan、workspace、data policy、料金は固定の結論にしない
- 未確認事項:実測していない節約率、全model対応、永続的なprovider固定、データ保持なしは断定しない
よくある質問
OpenRouterを安く使うには、安いモデルを選べば十分ですか?
十分ではありません。固定入力のcache hit、出力長、tool call、retry、fallback、provider、請求経路を分けて確認します。未測定の節約率は記事からは判断できません。
Batch APIなら必ず半額になりますか?
いいえ。per-tokenの割引はmodelごとに異なり、token以外の料金は一律に割引されません。対応model、provider、model pageの料金と完了後のusage.costを確認してください。
Batch APIはいつまでに結果が返りますか?
completion windowは24時間です。非同期処理でproviderが枠内の処理時刻を選ぶため、即時応答や固定SLAが必要な処理には同期APIを使います。
batch requestで個人情報や添付を扱えますか?
利用前にOpenRouterと選択providerのdata policyを確認します。OpenRouter側ではinputとresultを作成から最大30日保持し、upstream providerのretentionはproviderごとに異なります。画像・fileはpublic URLやprovider対応が必要です。terminal状態になった後、不要なbatchはAPIから削除できます。
Classifiersを使えばAPI料金は下がりますか?
自動で下がる機能ではありません。generationを分類して、どの作業・難度・部門が費用を使ったかを見えるようにするBeta機能です。classifier modelのtokenも課金されるため、sampling rateと観測効果を比べます。
Transcription APIと音声入力は同じですか?
違います。音声を文字列へ変換する場合はaudio/transcriptions、音声をモデルに理解させる場合はchat completionsのinput_audioが入口です。対応model、format、provider制御、response形式を分けて確認します。