質問: GMail APIを利用しているのですが、User-rate limit exceeded が発生します。 発生前の状態をAPI Managerで、リクエスト数等から、「Daily Usage」,「Per User Rate Limit」共に、quotaの計算を行ってみても、上限を超えていないように見えます。 ※エラー発生前の数日間はsendに関するAPIメソッドも記録されていません。 Gmail APIのquota上限の変更や、API以外からの影響など有るのでしょうか? 判断基準ですが、仮説レベルですが下記のように計算判断しました。 トラフィックデータからピーク時のリクエスト状況を確認すると 秒間で最大リクエストが30件で、通常20件弱で推移していているとします。 APIメソッドの種類を見ると、1分平均ですが messages.get:27.617件 messages.list:0.6167件 history.list:0.1167件 labels.list:0.2667件 getProfile:0.1167件 messages.delete:0件(約2日に1回) messages.modify:0件(約1日1回) messages.send:0件(約1日2回) それぞれquotaは、下記 messages.get :5 messages.list:5 history.list:2 labels.list :1 getProfile:1 messages.delete:10 messages.modify:5 messages.send:100 上記から、getで30件分を加算すると、秒間 150quotaで、 仮にsend1件,delete1件を加えても250quotaとなり、 APIの秒間quota制限を超えないと判断しました。 1日のリクエスト総数からdailyのquota制限は原因ではなく、 秒間のquota制限が原因ではないかと思っているのですが、 ほとんど、messages.getしか実施していない割に、 User-rate limit exceededが発生することが多いので、 質問させていただきました。 追記 API Managerのダッシュボードで、GmailAPIの「割り当て」画面で「Queries per day」,「Queries per 100 second」を見ても、まだまだ、上限まで余裕がある状態が続いていますが、 毎日、エラーが発生しています。 5分毎にGmaiAPIの呼び出しを行っており、 5分毎に20件程度のリクエストが発生しています。(今現在の1日分だと316,436回)
回答: Gmail APIの制限は制限はAPI呼び出し回数の他に * Mail Sending Limits * Bandwidth Limits * Concurrent Requests があります。リファレンス このうち、上2つが超過時に`User-rate limit exceeded`となることになっています。 送信はほとんど無いと言うことなので、Bandwidth Limitsではないでしょうか。 「1日分だと316,436回」だとすると1回あたり8KBぐらいが限界という計算になります。