Runbase は、公平な利用とプラットフォームの安定性を確保するため、API キーごとにレート制限を適用します。
デフォルト制限
| スコープ | 制限 |
|---|---|
| API key(runs エンドポイント) | 10 秒あたり 20 リクエスト |
| Auth エンドポイント | 60 秒あたり 5 リクエスト |
| Session check | 60 秒あたり 60 リクエスト |
runs エンドポイントのレート制限は、API キーごとに POST /api/v1/runs と GET /api/v1/runs/:id の両方を合算して適用されます。
レート制限のレスポンス
制限を超えると、API は HTTP 429 を返します:
{
"error": {
"message": "Rate limit exceeded",
"code": "RATE_LIMITED"
}
}レート制限の処理
429 レスポンスを受け取ったら、指数バックオフを実装してください:
import time
import requests
def create_run(api_key, model, input_data, max_retries=3):
url = "https://runbase.net/api/v1/runs"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
body = {"model": model, "input": input_data}
for attempt in range(max_retries):
response = requests.post(url, json=body, headers=headers)
if response.status_code == 429:
wait = 2 ** attempt
time.sleep(wait)
continue
return response.json()
raise Exception("Rate limit exceeded after retries")ヒント
- サービスやワーカーごとに別々のキーを使用することで、レート制限を共有しないようにします
- run のステータスを確認する際は、適切な間隔でポーリングする — 多くのモデルでは 1〜2 秒ごとで十分です
- 大量のリクエストを同時に送るのではなく、まとめて処理する
- 429 に対して即座に再試行しない — 再試行の前には必ず待機してください
より高い制限が必要ですか?
ユースケースでより高いレート制限が必要な場合は、support@runbase.net にお問い合わせください。

