APIコールのレート制限には一般的に3種類あります。Boxは独自の判断でこの制限を使用して、ネットワークリソースの保護やカスタマーエクスペリエンスの品質維持をうまく実現することができます。
ユーザーベース
このレート制限を使用すると、1人のユーザーによって生成されるトラフィックが多すぎる場合に発生する可能性のある問題からBoxサービスが保護されます。ユーザーが1分間に実行できるAPIコールの数は、以下で説明するように制限されています。このレート制限は最も一般的で、すべてのBoxユーザーアカウントに適用されます。通常、ユーザーの1分あたりのAPIコールが1,000を超えると、この制限が開始されますが、特定のAPIエンドポイントには別のレート制限が適用されている可能性があります。
サービスの品質
このレート制限は、Boxのインフラストラクチャのサービスの品質を保護することを目的としています。インフラストラクチャ内でリソースの競合が生じると、システムの性能低下や機能停止を防ぐために自動のレート制限が導入されます。たとえば、アプリケーションが偶然同じ物理データベースサーバーにアクセスした場合 (アクセス先が同じ物理リソースである関連リソースにアクセスするファイル移行ツールの使用など)、Boxでは、負荷が急増したときに一時的なレート制限が課せられ、システムの復旧に合わせて調整されることがあります。
ライセンスベース
すべてのBox Businessプランでは、1か月あたり1社ごとに許可されるAPIコールの数がライセンスされています。このライセンスベースのレート制限は、ネットワークリソースの過剰供給や乱用を防ぐことを目的としています。顧客が使用するツールや顧客のために使用されるツールがその顧客のAPIライセンス割り当てを超過しているか、ネットワーク管理を回避しようとしていることがBoxのインフラストラクチャで検出されると、さらに対象を絞ったレート制限が課せられる場合があります。Boxの価格ページ では、特定のアカウントレベルでライセンスされているデフォルトのAPI割り当てを確認できますが、割り当てを増やすためにPlatform APIの価格プランを購入する顧客もいることに注意してください。
APIごとのレート制限
現在、Box APIにはいくつかの異なるレート制限があります。
一般的なAPIコール
1ユーザーあたりのAPIリクエストは1000件/分
アップロード
1ユーザーあたりのファイルアップロードリクエストは240件/分
検索
に対して、1ユーザーあたりの検索数は6件/秒
基本のレート制限に加えてさらに2つの制限が適用
1ユーザーあたりの検索数は60件/分
会社あたりの検索数は12件/秒
Box Sign
署名リクエストの作成と再送信: 1ユーザーあたりのリクエスト数は100件/分
署名リクエストの取得: 1ユーザーあたりのリクエスト数は1,000件/分
レート制限エラー
アプリケーションがレート制限に達すると、APIは、HTTPステータスコードが429 Too Many RequestsのAPIレスポンスを返します。
レスポンスには以下のヘッダーとJSON本文が含まれます。
詳細については、を参照してください。
retry-afterヘッダーでは、次のAPIコールが再試行可能になるまで待機する秒数を指示します。一般的には、APIコールの再試行に指数バックオフ戦略を使用することをお勧めします。
SDKの再試行動作
Boxの現在のSDKは、429 Too Many Requestsを返すリクエストを自動的に再試行します。この再試行では指数バックオフ戦略が使用され、APIから返されるretry-afterヘッダーを尊重します。これにより、これらのSDKの使用時は、レート制限エラーに対する独自の再試行ループを実装する必要がありません。サポートされている言語とバージョンの一覧については、を参照してください。
古いBox SDKバージョンやコミュニティSDKを使用する場合、またはAPIを直接呼び出す場合 (たとえば、curl、Postman、独自のHTTPクライアントを使用する場合) は、429レスポンスの再試行を自分で行う必要があります。最初の再試行を行う前には、retry-afterヘッダーによって指定された秒数だけ待機し、リクエストが引き続き失敗する場合に指数バックオフを適用します。