Twitter APIの制限とその対策方法

![Twitter APIの制限とその対策方法.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/69c4481e-077b-feba-445e-05a7699abe0b.png)

APIの制限とのことが、多くのユーザーはX（Twitter）を利用する時に、初めて聞くと思います。多くのユーザーは、X（Twitter）の利用中に、APIの制限に遭って、サービスを正常に利用できなくなったことがあるようです。それでは、X（Twitter）APIの制限はなんですか？なぜかX（Twitter）がAPIの制限を設けていますか？どのようにX（Twitter）APIの制限を回避すれば良いのですか？本文では、これらの問題について、皆さんに解説していきたいと思います。

## X（Twitter） APIとは

X(Twitter) APIとは、Twitterのプラットフォーム上でデータや機能にプログラマティックにアクセスできるインターフェースのことです。X(Twitter) APIを通じて、様々な機能が実現されます。

- Twitterのタイムライン、ツイート、ユーザー情報などのデータにアクセスできる
- ツイートの投稿、いいね、リツイートなどの機能を利用できる
- 認証されたデベロッパーアカウントを使うことで、レートリミット(1時間当たりのリクエスト数)が高くなる
- REST APIとStreaming APIの2つが提供されている


REST APIは特定のエンドポイントにリクエストを送信する形で、Streaming APIはリアルタイムのデータストリームを受信できます。Twitter APIを使うことで、Twitterクライアントアプリや分析ツール、botsなどの開発が可能になります。ただし利用規約を遵守する必要があります。

## X（Twitter）APIの制限について
2023年7月1日ごろ、X（Twitter）は急にAPIの利用を制限し始めました。X（Twitter）の制限を超えると、「API呼び出し回数制限を超えました」というエラーメッセージが表示され、正常にX（Twitter）を利用できなくなりました。
![twitter-error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/ee3d444c-6e3e-c261-646b-5b779468a3a9.png)

例えば、ポストを閲覧したり、新しいポストを投稿したりすることもできなくなって、完全に利用不可な状態になってしまいました。当時のX（Twitter） APIの制限について、異なるアカウントの種類に対して、異なる制限を課していました。

- 認証済みアカウントは、1日あたり6,000件の投稿を閲覧できる
- 未認証アカウントは、1日あたり600投稿まで閲覧できる
- 新しい未認証アカウントは、1日あたり300投稿まで閲覧できる


もちろん、X（Twitter）突然のAPI制限に多くのユーザーが不満を表明しましたので、1日後の2023年7月2日に、X（Twitter）側はAPIの制限を緩和しました。


- 認証済みアカウントは、1日あたり閲覧可能のポスト件数が6,000件から8000件に増えた
- 未認証アカウントは、1日あたり閲覧可能のポスト件数が600件から800件に増えた
- 新しい未認証アカウントは、1日あたり閲覧可能のポスト件数が300件から400件に増えた

2023年7月2日同日に、X（Twitter）APIの制限がさらに緩和されました。

- 認証済みアカウントは、1日あたり10,000件の投稿を閲覧できる
- 未認証アカウントは、1日あたり1,000投稿まで閲覧できる
- 新しい未認証アカウントは、1日あたり500投稿まで閲覧できる


また、2023年7月16日に、イーロン・マスク氏は自分のポストで認証済みのアカウントのレート制限を50％引き上げると表明することで、認証済みのアカウントは1日あたり15,000件の投稿を閲覧できるようになるのでしょう。
![twitter.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/25b151e8-f2c9-11c1-c8e0-64418e7edcdd.jpeg)

このようにして、「API呼び出し回数制限を超えました」というエラーが発生する頻率が著しく減少してきたので、X（Twitter）APIに関する不満もどんどん消えてきたかと思います。

また、2024年2月現在の制限について、X（Twitter）サービスの利用規約のページによりますと、その制限は、次のようになります。

- ポスト (ツイート) の投稿　　2,400件/1日
- ダイレクトメッセージ　　500件/1日
- ユーザーのフォロー　400件/1日
- 登録メールアドレスの変更　4回/1時間

https://help.twitter.com/ja/rules-and-policies/x-limits

また、X（Twitter）のAPIは、1日当たりではなく、15分間ごとにリクエスト件数を計算しているようです。詳しくは次のリンクからX（Twitter）APIの公式ドキュメントにアクセスして、X（Twitter）APIのレート制限を確認してください。

https://developer.twitter.com/ja/docs/twitter-api/rate-limits


## なぜX（Twitter）はAPI制限を設ける？
それでは、X（Twitter）はAPIに制限を課す原因はなんでしょうか？2023年7月5日のX(Twitter) 社の公式声明によりますと、主に2つの原因があると言われています。

1.AIモデルを構築するために人々の公開されているTwitter上のデータをスクレイピングすることを防ぐ
2.様々な方法でプラットフォーム上の人々や会話を操作することを防ぐ

https://business.twitter.com/ja/blog/update-on-twitters-limited-usage.html

## X（Twitter）API制限を回避する方法
それでは、もしX（Twitter）API制限を超えてしまい、サービスを利用できなくなった場合、どうしたらいいですか？この部分では、役に立つ対策を皆さんに紹介します。

## アカウントをアップグレード
先に紹介したように、各アカウント種類に対して、X（Twitter）API制限も違っていますので、より高級のプランにアップグレード（未認証のアカウントを認証済みのアカウントにアップグレードなど）することで、X（Twitter）APIの制限を解除することができます。つまり、課金して有料プランであるXプレミアムを購入する必要がありますね。

## しばらく待っておく
APIの呼び出し回数を超えてしまった場合、時間が経過すれば、その制限が解消されますので、有料プランであるXプレミアムを購入することを考えない方は、このAPI制限がリセットされるまで、しばらく待っておく必要がありますね。一般的には、1日経過後、X（Twitter）サービスが再び利用できるようになります。

## X（Twitter）の代わりにそのAPIを直接に利用する
前述のように、普段のX（Twitter）サービスは、1日を単位に制限を課していますが、APIを利用する場合は、15分間を単位に制限を課しているようになります。ということで、X（Twitter）APIを利用している場合、使用ニーズが激増して、制限に達しても、15分間後にこの制限がリセットされ、再び利用できるようになると思います。

そこで、X（Twitter）のアプリかウェブサイトでサービスを利用できなくなる場合、どうしてもX（Twitter）を引き続き利用したいと思っている方は、X（Twitter）APIを利用することをお勧めします。

## ApidogでX（Twitter）APIを利用・テストする
それでは、X（Twitter）APIを利用するには、どうしたらいいですか？X（Twitter）APIの利用手順を解説する前に、X（Twitter）APIがどのような場面で役立つのかを解説していこうと思います。

### X（Twitter）APIの利用シーン
一般ユーザーに対して、X（Twitter）APIの利用シーンはそんなに多くないと思いますが、開発者にとってX（Twitter）APIをよく扱う必要があります。例えば、次のような利用シーンがある場合、X（Twitter）APIを利用することが必要となります：

- Twitterクライアントアプリの開発
- Twitterの公式アプリ以外に、第三者が開発するiOS/Androidアプリケーション
- 分析ツールの開発
- ツイートやトレンドの分析、ユーザー属性の分析などを行うツール
- マーケティング・広報への活用
- 企業アカウントの運用、インフルエンサーとのタイアップ、Twitterを使ったプロモーションなど
- カスタマーサポート
- Twitter上での顧客からの問い合わせ対応など
- botsや自動投稿ツールの開発
- 特定のキーワードを监視して自動反応したり、定期的に自動投稿を行うツール
- その他
- Twitter上でのイベント配信、認証連携によるサービス登録、研究用途など幅広い利用がされています。

## X（Twitter）APIへのアクセストークンを取得
X（Twitter）APIにアクセスするために、API認証が必要となります。Twitterの公式APIドキュメントを参照しながら、以下の手順でAPIにアクセスできます。

### 1.開発者アカウントを作成する

TwitterのDeveloperPortalにアクセスし、開発者アカウントを作成します。質問に答え、用途を説明する必要があります。

### 2.プロジェクトとアプリを作成する

開発者アカウントでプロジェクトを作成し、そのプロジェクト内でアプリを作成します。

### 3.認証情報を取得する

アプリページから、以下の認証情報を取得できます。

- [APIキーとシークレット](https://developer.twitter.com/en/docs/authentication/oauth-1-0a/api-key-and-secret "APIキーとシークレット") (OAuth 1.0a)
- [アクセストークンとシークレット](https://developer.twitter.com/en/docs/authentication/oauth-1-0a/obtaining-user-access-tokens "アクセストークンとシークレット") (OAuth 1.0a)
- [クライアントIDとシークレット](https://developer.twitter.com/content/en/docs/authentication/oauth-2-0/user-access-token "クライアントIDとシークレット") (OAuth 2.0)
- [ベアラートークン](https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens "ベアラートークン") (OAuth 2.0)


OAuth 1.0aかOAuth 2.0を使い、リクエストに対して適切な認証を行うと、公式ドキュメントのエンドポイント仕様を確認し、必要なパラメータを付けてAPIを呼び出します。

**ご案内** :APIキーやトークンは、TwitterのDeveloperPortalで一回のみ表示されますので、これらの情報を安全に保管する必要がありますので、注意を払ってください。

## X（Twitter）APIの利用・テスト手順
X（Twitter）APIを利用するには、まずはX（Twitter）のAPIドキュメントを確認して、APIアクセストークンそして、適切なAPIクライアントツールを使用して、APIを利用したり、テストしたりする必要があります。一番便利な方法は、使いやすいAPI管理ツールの[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)を利用することです。

[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)は、API Hubというサービスを提供しているので、この[API Hub](https://apidog.com/apihub/)では、X（Twitter）APIプロジェクトが見つけられます。次のリンクから、API HubのX（Twitter）APIのページにアクセスすると、直ちに利用＆テストできます。


https://810m0vbqyf.apidog.io/

このページでは、X（Twitter）APIのすべてのエンドポイントが表示されるので、必要に応じて、必要なエンドポイントを選択して、「Try it out」をクリックして、すぐにリクエストを送信することができます。また、「Run in Apidog」ボタンをクリックして、X（Twitter）APIを[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)で開いて、自分のプロジェクトに追加したりすることもできるので、非常に便利です。

![apidog-twitter-api.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/9499f6fd-7c1d-d110-9e1e-603579ce88c9.png)



## まとめ
この記事では、Twitter APIの制限について詳しく解説しました。Twitter APIとはTwitterのプラットフォームをプログラミティックに利用するインターフェースのことで、様々な開発に用いられています。しかし、Twitterは規制のためにAPIの利用に制限を課しています。制限を超えるとエラーが発生し利用できなくなるため、アカウントのアップグレードや待機などの対策が必要です。

X（Twitter）APIの利用やテストに便利なツールとして、[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)という直感で使いやすいAPIツールを試してみましょう。