レート制限
APIリクエストはAPIキーごとに、エンドポイント群単位で制限されます:
| エンドポイント | 制限 |
|---|---|
| GET /v1/products · GET /v1/balance · GET /v1/api-key · GET /v1/tasks/{token} · GET /v1/tasks/{token}/result · GET /v1/tasks/{token}/download | APIキーあたり 60 リクエスト / 分(IP あたり 120 / 分) |
| POST /v1/detect · POST /v1/detect/file | APIキーあたり 10 リクエスト / 分(IP あたり 30 / 分) |
| POST /v1/realtime/check/{series} · POST /v1/realtime/detect | APIキー単位のトークンバケット:バースト60、毎秒1補充(持続約60 / 分)。アカウント単位:バースト120、毎秒2補充。IP層は180 / 分。すべてのレスポンスに X-RateLimit-Remaining ヘッダーが付きます。 |
レスポンスヘッダー
Section titled “レスポンスヘッダー”受け取るヘッダーはどの層が応答したかによって異なり、3つのグループの挙動は同じではありません:
| ヘッダー | 意味 | 付与される条件 |
|---|---|---|
X-RateLimit-Remaining | 現在のウィンドウに残っているリクエスト(またはトークン)数 | 3グループすべてのレスポンス |
X-RateLimit-Limit | 適用された上限 | 一般・検出のすべてのレスポンスと、IP 層からの 429。リアルタイムのレスポンスには決して付きません — リアルタイムはバケットを消費するため、固定の上限がありません |
Retry-After | 再試行までに待つ秒数 | 429 のときのみ |
X-RateLimit-Reset | ウィンドウがリセットされる Unix タイムスタンプ | 一般または検出グループの 429 のときのみ。リアルタイムや IP 層からは付きません |
X-RateLimit-Remaining は無条件に信頼できる唯一のヘッダーであり、リアルタイムが成功時に返す唯一のヘッダーです。
429 に達したとき
Section titled “429 に達したとき”制限を超えると API は Retry-After ヘッダー付きの 429 を返します(リアルタイムは retry_after フィールドもあり)。指示された秒数だけ送信を停止し、指数バックオフで再開してください。
{ "message": "Too many requests. Limit: 60/min."}Retry-After: 12X-RateLimit-Limit: 60X-RateLimit-Remaining: 0