最終更新
レート制限
読み取れる量を左右するものは 2 つあります。API キーごとのリクエストレートと、ウォレットのクレジットです。前者を超えると 429、後者を使い切ると 402 が返ります。
リクエストレート
制限は API キーごとに適用され、その値はワークスペースのプランで決まります。キーには 1 秒あたりの制限(1 秒間のスライディングウィンドウ)と、UTC の午前 0 時にリセットされる 1 日あたりの上限があります。ダッシュボードのセッションにはレート制限はかかりません。
| プラン | 1 秒あたりのリクエスト数 | 1 日あたりのリクエスト数 | 有効なキー数 |
|---|---|---|---|
| Free | 1 | 5,000 | 1 |
| Starter | 5 | 15,000 | 3 |
| Pro | 20 | 100,000 | 10 |
| Scale | 60 | 400,000 | 25 |
| Agency / Enterprise | 150 | 1,200,000 | 無制限 |
スコープやモジュールの不足で拒否されたリクエスト(403)はカウントされません。認証を通過したリクエストは、結果にかかわらずすべてカウントされます。
ヘッダー
リミッターを通過したレスポンスには、残りの利用枠が付きます。X-RateLimit-Limit と X-RateLimit-Remaining は 1 秒あたりのウィンドウを表し、Daily の組はキーに 1 日あたりの上限がある場合に付与されます。
HTTP/2 200X-RateLimit-Limit: 20X-RateLimit-Remaining: 19X-RateLimit-Daily-Limit: 100000X-RateLimit-Daily-Remaining: 98431429 レスポンスの例
制限を受けたリクエストは、コード rate_limit_exceeded とともに 429 を返します。ボディは標準のエラーエンベロープで、秒単位の整数の Retry-After ヘッダーが付きます。少なくともその時間待ってからリトライし、再び制限を受けた場合は指数的にバックオフしてください。
HTTP/2 429Content-Type: application/jsonRetry-After: 1 {"code":"rate_limit_exceeded","message":"API key rate limit exceeded.","requestId":"3f2b6c1e-…","retryable":true}1 日あたりの上限を使い切ると、コード daily_quota_exceeded とともに 429 が返り、Retry-After は UTC の午前 0 時までの秒数になります。この 429 自体には上限関連のヘッダーは付きません。
クレジット
リクエストレートとは別に、すべての読み取りはワークスペースのウォレットからクレジットで計量されます。キャッシュの閲覧は低コストで、新しいデータを収集するリクエストはより多くのクレジットを消費します(クレジット を参照)。上限に達すると、キャッシュの閲覧を含むすべての計量対象の呼び出しが、コード credit_cap_exceeded とともに 402 を返します。
resetAt を基準にポーリングし、LIVE イベントにはポーリングより Webhook を使ってください。