上級者用語を調べる
APIのレート制限とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
レート制限は、取引所のAPIに対して一定時間内に送れるリクエスト数の上限です。全体の安定性を守るための仕組みで、超過すると一時的に拒否されたり、アクセスが制限されたりします。上限値と数え方は取引所ごとに異なるため、公式の仕様を読んで設計する必要があります。
要点
- 一定時間内に送れるリクエスト数の上限
- 超過すると拒否や一時的な制限を受ける
- 重み付けで数える方式もある
- 上限と数え方は取引所ごとに異なる
定義
取引所が提供するAPIに対し、単位時間あたりに受け付けるリクエスト数や処理量の上限を定める制御。IPアドレス単位、APIキー単位、エンドポイント単位などで設定される。
APIは誰でも高速に叩けてしまうため、制限がなければ一部の利用者が処理能力を占有し、全体が不安定になります。そこで単位時間あたりの上限が設けられます。単純な回数で数える方式のほか、エンドポイントごとに重みを付けて合計で数える方式も広く使われています。
上限を超えた場合の挙動は、エラーを返して待たせるのが一般的です。ここで待たずに再送を繰り返すと、制限がさらに強まったり、キーが一時停止されたりすることがあります。実装側では、エラーを受けたら間隔を空けて再試行する仕組みを入れておくのが基本です。
板やティッカーのように更新が頻繁な情報は、都度取得するよりWebSocketなどの配信を使うほうが制限に触れにくく、遅延も小さくなります。注文の発注・取消は回数が読みにくいため、必要なときだけ呼ぶ設計にしておくと余裕が生まれます。
なお、相場が急変している時間帯は自分の呼び出しだけでなく取引所全体の負荷も上がります。平常時に上限ぎりぎりで動かしている設計は、いちばん動かしたい場面で止まりやすくなります。
注意点
- · 制限に触れた状態で再送を繰り返すと、キーが一時停止されることがある
- · 相場急変時は全体の負荷が上がり、平常時の設計では足りないことがある
- · 上限値と数え方は取引所により異なるため公式の仕様で確認する