SORACOM API では、関連する API (以下、API グループ) に対してまとめて 1 分間あたりの最大リクエスト数 (レート制限) が設定されています。
API を呼び出すと、HTTP レスポンスヘッダーに、レート制限に関する以下の情報が含まれます。
HTTP レスポンスヘッダー | 説明 |
---|---|
X-Soracom-Ratelimit-Limit | 呼び出した API が含まれる API グループの API 呼び出し可能回数 (*1)。この値は、上限です。現在の呼び出し回数にかかわらず、同じ値が返却されます。 |
X-Soracom-Ratelimit-Remaining | 呼び出した API が含まれる API グループの API 呼び出し可能回数 (*1)。この値は、残りの回数 (上限から、現在の呼び出し回数を引いた値) です。最大リクエスト数 (レート制限) を超えた場合は、この値が 0 になり、HTTP レスポンスのステータスコードとして 429 (Too Many Requests) が返却されます。少し時間を空けてから再度 API を呼び出してください。 |
X-Soracom-Ratelimit-Seconds-Before-Refresh | 単位時間 (1 分間) が経過するまでの秒数。 |
- (*1) 「API 呼び出し可能回数」は、単位時間 (1 分間) 内に API を呼び出せる回数です。
なお、API グループごとにレート制限が設定されているため、ある API を呼び出して 429
(Too Many Requests) が返却されたときは、同じ API グループに所属する別の API を呼び出したときも同様に 429
(Too Many Requests) が返却される場合があります。
たとえば以下の API は、同じ API グループに所属しています。
DataEntry:getDataEntries API
(GET /data/{resource_type}/{resource_id})DataEntry:deleteDataEntry API
(GET /data/{resource_type}/{resource_id}/{time})DataEntry:getDataEntry API
(DELETE /data/{resource_type}/{resource_id}/{time})DataEntry:listDataSourceResources API
(GET /data/resources)
したがって、DataEntry:getDataEntries
を呼び出して 429
が返却されたときは、それ以外の 3 つの API を呼び出したときにも 429
が返却されます。
HTTP レスポンスヘッダーを解析する際は、大文字小文字を区別しないでください。
呼び出し元 IP アドレス単位でレート制限が設定されている API
以下の API は、呼び出し元 IP アドレス単位で 1 分間あたりの最大リクエスト数が定められています。
- Auth
- Device
https://api.soracom.io/v1/devices/{device_id}/publish
(ステップ 3: Harvest Data にデータを送信する を参照してください)
- Operator
リクエスト数のカウントについて
API のリクエスト数は、オペレーターごとにカウントされます。ただし、以下の API のリクエスト数はデバイスごとにカウントされます。
上限を緩和しなければ対応できないユースケースでの利用について
通常の使用において問題ないと思われる水準で 1 分間あたりの最大リクエスト数を定めています。上限を緩和しなければ対応できないユースケースで API を呼び出す場合は、以下の情報を添えて SORACOM サポート に相談してください。
- 対象のパス
- 1 分間あたりのリクエスト数の見積もり
- お客様のユースケース