レート制限
レート制限は、認証されたアカウントごとに、APIキーに基づいて適用されます。IPアドレス単位ではありません。つまり、同じクライアントが複数のマシンやIPからAPIにアクセスしても、制限は共有されます。また、異なる顧客が(企業プロキシなどを介して)同じ送信元IPを共有していても、互いに影響を与えることはありません。
エンドポイントカテゴリ別の制限
| カテゴリ | 制限 | エンドポイント |
|---|---|---|
| アップロード / 処理 | 毎分30回 | POST /documents、POST /batches/{batch_name}/process、 POST /documents/{document_id}/bbox、PUT /batches/{batch_name}/webhook |
| ステータスポーリング / 結果取得 | 毎分120回 | GET /documents/{document_id}、GET /batches、 GET /batches/{batch_name}、GET /batches/{batch_name}/results、 GET /documents/{document_id}/bbox、GET /documents/{document_id}/image、 GET /account、GET /account/usage、テンプレート/フィールドエンドポイント |
| エクスポート | 毎分10回、毎時60回 | GET /batches/{batch_name}/export |
これらは現在のデフォルト値であり、今後変更される可能性があります。以下で説明するレスポンスヘッダーは、呼び出したエンドポイントに実際に適用されている制限を常に反映します。そのため、これらの数値をハードコードするのではなく、ヘッダーに基づいて実装を構築してください。
レスポンスヘッダー
レート制限の対象となるすべてのレスポンス(成功・失敗を問わず)には、現在の状況を示す3つのヘッダーが含まれます。
| ヘッダー | 意味 |
|---|---|
X-RateLimit-Limit | 現在のウィンドウで許可されているリクエストの総数。 |
X-RateLimit-Remaining | 現在のウィンドウで残っているリクエスト数。 |
X-RateLimit-Reset | 現在のウィンドウがリセットされるタイミング。 |
ポーリングループ内でX-RateLimit-Remainingを事前に確認し、ゼロになる前にバックオフすることを推奨します。429エラーが発生してから対応するのではなく、事前に回避してください。
制限を超えた場合
制限を超えると、HTTP 429と標準のv1エラー形式が返されます。
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "リクエストが多すぎます。速度を落とし、ウィンドウがリセットされた後に再試行してください。",
"doc_url": "https://imagetotable.ai/developers/guides/errors#rate_limit_exceeded"
}
}バッチステータスをポーリングする場合は、高頻度のポーリングループではなく、Webhookを登録することをお勧めします。これにより、そのユースケースにおけるステータスポーリング制限に抵触するリスクを完全に排除できます。