X(旧Twitter)にてタイムラインを再度読み込むなどツイートを取得した時に「API呼び出しの回数制限を超えました」「しばらくしてからやり直してください」といったメッセージが表示される現象が発生しています。
この画面だけでは呼び出し制限の回数がどれぐらいなのかがわからず、回避する方法もわからないためストレスを抱えている人が多いようです。
この記事では、XのAPI呼び出しの回数制限に関して発生する理由や条件等をまとめています。
現在は1日1000件までしかツイートを読めない
「API呼び出しの回数制限を超えました」画面が表示される現象は不具合ではなく仕様です。
Xでは、サービスが利用できなくなったり、エラーの発生を抑えるために、制限を設けてシステムの負荷を軽減する「Xリミット」という仕様があり、この制限を超えた時に上記のメッセージが表示されます。
Xリミットの条件は?
Xリミットの制限にかかる条件には、ツイートやダイレクトメッセージの1日あたりの投稿数、メールアドレスの変更、1日あたりおよびアカウントベースのフォロー件数などが含まれています。
制限に到達した場合は、1日後または1時間後に再度試すことで再び利用できる可能性があります。
なお、「利用が集中する時間帯にこのようなリミットを一時的に引き下げる場合があります。」とも案内されており、以下の条件に達する前に制限にかかる場合もあります。
- ダイレクトメッセージ(1日)
- 1日に送信できるメッセージは500件まで
- ツイート
- 1日あたり2,400件が上限。30分単位のリミットに分けられ、リツイートもツイートとしてカウント対象。
- アカウントの登録メールアドレスの変更
- 1時間に4回まで
- フォロー(1日)
- 1日あたり400件まで。別に過剰なフォロー行為を禁止するルールあり
- フォロー(アカウントベース)
- 1つのアカウントでフォローしているアカウント数が5,000件に到達して、さらにフォローを試みた場合、そのアカウントに応じた特定の比率で制限
スクレイピング対策による追加対策
通常、Xリミットにかかる条件は上記のとおりですが、イーロンマスクはXに負荷をかけながらデータを取得するスクレイピングに対して、2023年7月2日から一時的な対策を行うことを明らかにしました。
スクレイピング対策の内容は、全ユーザーを対象にツイートの表示回数を制限するというもので、「API呼び出しの回数制限を超えました」と表示される原因のほとんどはスクレイピング対策によるものです。
To address extreme levels of data scraping & system manipulation, we’ve applied the following temporary limits:
— Elon Musk (@elonmusk) July 1, 2023
– Verified accounts are limited to reading 6000 posts/day
– Unverified accounts to 600 posts/day
– New unverified accounts to 300/day
制限の内容は当初、認証済みアカウントは1日6,000ツイート、未認証アカウントは1日600ツイート、作成されたばかりの未認証アカウントは1日300ツイートまでの表示が可能でしたが、徐々に拡張されてイーロンマスクの最後の報告によれば、認証済みアカウントは1日10,000ツイート、非認証アカウントは1日1,000ツイート、作成されたばかりの非認証アカウントは1日500ツイートまでとなっています。
なお、認証済みアカウントとは、Xプレミアム(旧Twitter Blue)に加入した上で、付与条件を満たして青いチェックマークがプロフィールに追加されたアカウントのことを指しています。Xプレミアムには、青いチェックマークがもらえない最安のベーシックプランが用意されていますが、認証済みアカウントとして扱われないことが予想されます。
こういった一時的なスクレイピング制限が、いつごろ廃止されるのか案内されていません。ただし、2023年11月時点ではAPIに引っかかったとの声がかなり減少していることから、その後も継続的に条件が緩和されているように思います。
制限にかかったらどうすればいい?
上でも書いたとおり、Xリミットの制限にかかった場合は、1日後または1時間後に再度試すことで再び利用できるかもしれません。
スクレイピング対策による制限にかかった場合について詳細は案内されていませんが、制限はアカウントごと、またはデバイスごとに適用されるため、複数のアカウントやデバイスを使い分けることで制限を回避できます。
また、Xプレミアムに加入することでも制限を緩和できます。