Runbaseドキュメント

Command Palette

Search for a command to run...

レート制限

APIリクエストの制限とその対処方法。

Runbase は、公平な利用とプラットフォームの安定性を確保するため、API キーごとにレート制限を適用します。

デフォルト制限

スコープ制限
API key(runs エンドポイント)10 秒あたり 20 リクエスト
Auth エンドポイント60 秒あたり 5 リクエスト
Session check60 秒あたり 60 リクエスト

runs エンドポイントのレート制限は、API キーごとに POST /api/v1/runsGET /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 にお問い合わせください。