OpenRouter無料枠の制限と429エラーの直し方
Updated 2026-07-15
OpenRouterの無料モデルバリエーションは、1分あたりおよそ20リクエストに制限され、さらにアカウントの生涯クレジット購入額が$10未満なら1日50リクエスト、その閾値を超えれば1日1,000リクエストになります。429が返るのは、これらの上限のいずれかに達したか、その瞬間に共有の無料プールが飽和しているかのどちらかです。
結論:無料枠の正確な制限
OpenRouterは無料利用を2つの軸で制限しています。1分あたりの上限と、1日あたりのリクエスト予算です。無料モデルバリエーション(モデルIDが:freeで終わるもの)の1分あたりの上限は20リクエストです。1日あたりの予算は、アカウントがこれまでに$10以上のクレジットを購入したことがあるかどうかで決まります。その生涯の閾値未満なら1日50リクエスト、それ以上なら1日1,000リクエストです。 これらは2026年初頭時点でOpenRouterが文書化している数値です。以前にも変更されたことがあり(1日の上限はかつてもっと高かった)、この表は恒久的な保証ではなく現時点の基準として扱い、次のセクションの確認方法で自分のキーに対して検証してください。 429レスポンスは、これらの上限のいずれかを超えたか、あなた自身のクォータには余裕があってもその無料モデルを提供している上流のプロバイダの容量が尽きたことを意味します。このガイドの残りでは、どちらに当たったのかを見分ける方法と、その対処法を扱います。
| 制限 | 値 | 適用条件 |
|---|---|---|
| 1分あたりのリクエスト数 | 20 rpm | すべての:freeモデルバリエーション、アカウント単位 |
| 1日あたりのリクエスト数 | 50 | 生涯のクレジット購入額が$10未満 |
| 1日あたりのリクエスト数 | 1,000 | 生涯のクレジット購入額が$10以上 |
| 有料モデル | 別枠で、はるかに高い上限 | 無料でないすべてのモデル、トークン単位で課金 |
無料枠が実際にどう機能するか
OpenRouterの無料モデルは、:freeというサフィックスの付いた別カタログのエントリです。容量を無償提供または補助しているプロバイダによって提供されているため、同じウェイトの有料バリエーションよりも可用性がはるかに大きく揺れ動きます。 つまずきやすい点が3つあります。まず、1日の上限はアカウント全体で共有されます。無料モデルをどう組み合わせて使っても合計50リクエストであり、モデルごとに50リクエストではありません。次に、$10の閾値でカウントされるのは生涯のクレジット購入額であって、現在の残高ではありません。一度$10購入すれば、それを使い切った後も1日1,000リクエストの枠に留まります。最後に、上限はアカウント単位で強制されるため、同じアカウントの下で追加のAPIキーを作っても何も変わりません。 自分のキーが今どの状態にあるかは正確に確認できます。レスポンスにはis_free_tier、これまでの使用量、そして現在キーに適用されているレート制限オブジェクトが含まれます。
curl https://openrouter.ai/api/v1/auth/key \
-H "Authorization: Bearer $OPENROUTER_API_KEY"
# Response fields worth reading:
# "is_free_tier": true -> under the $10 lifetime threshold
# "usage": 1.42 -> credits consumed
# "rate_limit": {...} -> the per-interval limit on this keyピーク時間帯に429が急増する理由
個人の上限は話の半分に過ぎません。無料の容量は共有プールであり、OpenRouterはその瞬間に余裕のある補助容量を持つプロバイダにしか無料リクエストをルーティングできません。人気の無料モデルが飽和すると、その日にほんの数リクエストしか送っていなくても429やアップストリームエラーが返ってきます。コミュニティの報告では、米国時間帯の夜と週末が最も混雑する時間帯として繰り返し挙げられており、オフピーク時には同じリクエストが即座に成功します。これらは公開された数値ではなくおおよその観測結果ですが、計画を立てる上で頼りにできるほど頻繁に繰り返されています。 チャット用フロントエンドはこの問題を増幅させます。SillyTavernやJanitorAIのようなインターフェースは、スワイプ・再生成・グループチャットのターンごとに新しい補完リクエストを送信し、一部のプロキシ設定は失敗を自動でリトライします。15件のメッセージを送ったつもりのユーザーが、実際には40〜50リクエストを発生させていることもあり、これは$10の閾値未満のアカウントの1日分の予算をまるごと使い切る量です。積極的な自動リトライは、みんなにとってのピーク時の混雑をさらに深刻にするため、規律あるバックオフが重要になります。 実用的な見分け方はこうです。1日のリセットを待てば429が止まるなら、自分のクォータに達したということです。リクエスト数が少ないのに同じ1時間の中で429が出たり消えたりするなら、それはプールの混雑を見ています。
対処法(手間の少ない順)
無料枠でトラフィックを続けるなら、最低限のクライアントは失敗や闇雲なリトライに任せるのではなく、429を明示的に処理するべきです。
- まずエラーの本文を読む。OpenRouterの429は、1分あたりの上限、使い切った1日のクォータ、上流の混雑を区別しています。実際に当たったものだけを直しましょう。
- Retry-Afterを尊重し、ジッターを加えた指数バックオフを行う。エンドポイントを叩き続けると、レート制限される時間が長引き、混雑も悪化します。
- 一度でいいので$10の生涯クレジット閾値を超える。これで1日の上限が50から1,000リクエストに引き上がり、1日のクォータによる429に対して最も効果の大きい対処法です。
- 重要なトラフィックは同じモデルの有料バリエーションに移す。DeepSeekクラスのモデルは100万トークンあたり1ドルを大きく下回るため、ヘビーに使った1晩でも通常は数セントで済みます。
- クライアント側でリクエスト量を減らす。自動再生成を無効にし、不要なスワイプを避け、コンテキストを削って、リトライが発生したときのコストを抑えましょう。
import random
import time
import requests
def chat(payload: dict, key: str, retries: int = 5) -> dict:
for attempt in range(retries):
r = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={"Authorization": f"Bearer {key}"},
json=payload,
timeout=120,
)
if r.status_code != 429:
r.raise_for_status()
return r.json()
wait = float(r.headers.get("Retry-After", 2 ** attempt + random.random()))
time.sleep(wait)
raise RuntimeError("Still rate limited after all retries")1日50リクエストで足りないときの代替手段
利用パターンが常に無料予算を超えているなら、現実的な選択肢は4つあります。どれが正解かは、ボトルネックが1日のクォータなのか、ピーク時の混雑なのか、あるいは両方なのかによります。 有料の選択肢は、リクエストの形式ではなく主に手間の面で異なる点に注意してください。どれも同じOpenAI互換のchat completions形式を話すため、切り替えはコードの書き直しではなく、ベースURLとキーの変更だけで済みます。
| 選択肢 | 課金モデル | レート制限の挙動 | トレードオフ |
|---|---|---|---|
| OpenRouterの:freeバリエーション | $0 | 20 rpm、1日50または1,000リクエスト | 共有プール、ピーク時の混雑 |
| OpenRouterの有料モデル | トークン単位、事前クレジット | はるかに高く、アカウントに応じて拡大 | クレジット購入にプラットフォーム手数料 |
| プロバイダ直接のAPI | 公式定価でトークン単位 | プロバイダごとのティア | プロバイダごとに別々のキーと請求 |
| 従量課金型ゲートウェイ | トークン単位、サブスク不要 | 有料容量、無料プールの奪い合いなし | 最初のリクエストから課金される |
| セルフホストのオープンウェイト | ハードウェアと電気代 | GPUのみによる制限 | セットアップの手間、モデルサイズの上限 |
直接ゲートウェイでチャットフロントエンドを動かす
直接ゲートウェイはOpenAI互換のリクエスト形式を維持しつつ、すべてのリクエストが有料容量であるため無料プールの待ち行列をなくします。APIsRouterはその一例です。サブスクなしの従量課金で、/topupでの登録不要のチェックアウトでは先に支払うとAPIキーがメールで届きます。グローバルモデルは公式価格より20%安く、中国系モデルは公式価格を下回り、初回チャージでは開始残高が2倍になります。 フロントエンドの設定は、すでにOpenRouterで行っているのと同じです。SillyTavernでは、/v1で終わるベースURL(https://api.apisrouter.com/v1)を貼り付ければ、キーを入力した時点で/v1/modelsからモデル一覧が自動入力されます。JanitorAIのプロキシ設定では代わりに完全なエンドポイントが必要です。https://api.apisrouter.com/v1/chat/completionsに加え、モデル名とAPIキーです。 キャラクターチャットやロールプレイのトラフィックでは、DeepSeek V4ファミリーがコスパの面でコミュニティのお気に入りで、MiMo・GLM-5・Kimi K2.6もさらなるコスパの選択肢です。Claude Sonnet 4.6は、Anthropicのコンテンツポリシーのもと、安全な(SFW)クリエイティブライティングにおいて最も強い文章力を持っています。
| モデル | モデルID | 入力/出力(100万トークンあたり) |
|---|---|---|
| DeepSeek V4 Flash | deepseek-v4-flash | $0.126 / $0.252 |
| DeepSeek V4 Pro | deepseek-v4-pro | $0.3915 / $0.783 |
| GLM-5 | glm-5 | $0.514 / $2.314 |
| Gemini 3.5 Flash | gemini-3.5-flash | $1.20 / $7.20 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 | $2.40 / $12.00 |
curl https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Hello"}]
}'よくある質問
OpenRouterは無料で使えますか?
一部は無料です。OpenRouterは一部のモデルの無料バリエーション(IDが:freeで終わるもの)を掲載しており、無料ですが1分あたりおよそ20リクエスト、1日あたり50または1,000リクエスト(生涯で$10のクレジットを購入したことがあるかどうかによる)に制限されています。それ以外のすべてのモデルはトークン単位の有料です。
OpenRouterでなぜ429エラーが繰り返し出るのですか?
429は、1分あたりの上限を超えたか、1日の無料リクエスト予算を使い切ったか、その無料モデルの上流の共有容量が飽和しているかのいずれかを意味します。エラー本文にどれかが記載されています。クォータによる429は1日のリセットまで続き、混雑による429は通常オフピーク時に解消します。
OpenRouterのレート制限を引き上げるにはどうすればよいですか?
一度$10のクレジットを購入してください。この生涯の閾値を超えると、無料モデルの1日の上限が50から1,000リクエストに引き上がります。それ以上は、トラフィックを有料モデルバリエーションに移す、バックオフを入れてリクエストを分散させる、あるいは別のプロバイダやゲートウェイに余剰分を回すといった選択肢があります。
OpenRouterの無料モデルに1日の上限はありますか?
はい。1日の予算はアカウント上のすべての無料モデルで共有されます。生涯のクレジット購入額が$10未満なら1日50リクエスト、それ以上なら1日1,000リクエストです。アカウント単位で強制されるため、同じアカウントの追加のAPIキーでは枠は増えません。
JanitorAIやSillyTavernに無料枠で十分ですか?
軽いテスト用途なら十分です。実際には、スワイプ・再生成・グループのターンがそれぞれ別のリクエストになるため、アクティブなセッションはあっという間に50リクエストを消費し、さらにピーク時の混雑が失敗を上乗せします。ヘビーユーザーは通常、安価な有料モデルに移行します。どちらを使うにせよ、フロントエンドプラットフォームの利用規約(年齢要件を含む)と、モデルプロバイダのコンテンツポリシーには従ってください。