429(Too Many Requests)は15分間にxx回以外にも制限はありますでしょうか?


#1

これらのAPI(他の似たようなaccount_idを使って取得するAPIもですが)
GET accounts/:account_id/promoted_tweets
GET accounts/:account_id/cards/website

ドキュメントを見る限りだと
https://developer.twitter.com/en/docs/ads/general/guides/rate-limiting
Account Reads (GET endpoints with :account_id) Endpoint 2000

15分で2000回と認識したのですが合っていますでしょうか?

200回程度で429(Too Many Requests)が返ってきており、
X-Rate-Limit-Limit , X-Rate-Limit-Remaining を見る限りだと2000回で1500以上残っている様なのですが、
15分で2000回という他にも制限はありますでしょうか?

また
endpoint毎にlimitがあると思ってたのですが
GET accounts/:account_id/cards/website で429が返ってきたあと
GET accounts/:account_id/cards/video_website でもすぐに429が返ってしまっている状態です。
何かこちらの認識が間違っていますでしょうか?

お手数おかけしますがご確認いただければと思います。


#2

with_total_count を付けると15分で200回という制限があることがパラメータの説明にあり、見落としていました。

こちらの確認不足でした。申し訳ありません。


#3

@ktym さん、お問い合わせありがとうございます。こちらは長い間見落としになってしまい、お詫びいたします。

基本的に他の制限はない認識ですので、二つの原因の可能性しか考えられないんですが:
1)並列でいろんなスレッド・サーバーからアクセスを行う(全てはカウントされます)
2)使ってるアプリのレートリミット設定に間違いがある(これを調べるのにApp IDが必要です)
twurlを再現

もしtwurlで「-t」っていうオプション付きで再現できれば、そのレートリミットのヘッダーだけを貼っていただけますか?
例えば:
twurl -H ads-api.twitter.com -A “/2/accounts/18ce1111111/cards/video_app_download” -t | jq .
を2回やればこういう風になります:
-> “x-rate-limit-remaining: 1998\r\n”

429が出た時のレスポンスもあれば参考になります。


#4

@JBabichJapan さん、ご回答ありがとうございます。

twurlの -t オプションを使い、ヘッダー情報を確認したところ
x-rate-limit-limit は2000で
x-rate-limit-remaining も残数はありましたが、

with_total_count を付けてしまっていたことで
15分で200回という制限を超えてしまっていたようです。
ドキュメントのパラメータの説明にはあったのですが、見落としていました。
こちらの確認不足でした。申し訳ありません。


#5

いえいえ、with_total_countのことがそちらのレートリミット説明のページに載せた方といいと思いますのでお問い合わせありがたいです!