メインコンテンツへスキップ
毎日、数千もの開発者が X API にリクエストを送信しています。大量のリクエストを適切に管理するため、実行可能なリクエスト数に制限を設けています。これらの制限により、開発者コミュニティが頼りにする信頼性が高くスケーラブルな API を提供できます。 許可される最大リクエスト数は時間間隔に基づき、通常は特定の期間(ウィンドウ)で定義されます。最も一般的な間隔は 15 分です。たとえば、15 分あたり 900 件の制限があるエンドポイントは、任意の 15 分間に最大 900 件のリクエストを許可します。 レート制限は認証方法によって異なります。たとえば、OAuth 1.0a ユーザーコンテキストを使用している場合、各ユーザーのアクセス トークンごとに、期間あたりのレート制限が適用されます。あるいは、OAuth 2.0 ベアラー トークンを使用している場合、アプリごとに時間期間ごとの独立した制限が適用されます。これらの制限を超過すると、エラーが返されます。

目次

X API v2 のレート制限

以下の表は、X API の各有料プランにおけるレート制限を示しています。これらの制限は、開発者ポータルの「製品」セクションでも確認できます。
エンドポイントプロの上限 ベーシックの上限 無料の上限
Tweet
DELETE /2/tweets/:id50 リクエスト / 15 分
ユーザーごと
5 リクエスト / 15 分
ユーザーごと
24 時間あたり 17 リクエスト
ユーザーごと
24 時間あたり 17 リクエスト
アプリごと
DELETE /2/users/:id/likes/:tweet_id50リクエスト / 15分
ユーザー単位
100リクエスト / 24時間
ユーザー単位
1リクエスト / 15分
ユーザー単位
DELETE /2/users/:id/retweets/:tweet_id50件のリクエスト / 15分
ユーザーごと
5件のリクエスト / 15分
ユーザーごと
1件のリクエスト / 15分
ユーザーごと
GET /2/tweets900件のリクエスト / 15分
ユーザー単位
450件のリクエスト / 15分
アプリ単位
15件のリクエスト / 15分
ユーザー単位
15件のリクエスト / 15分
アプリ単位
1件のリクエスト / 15分
ユーザー単位
1件のリクエスト / 15分
アプリ単位
GET /2/tweets/:id900リクエスト / 15分
ユーザー単位
450リクエスト / 15分
アプリ単位
15リクエスト / 15分
ユーザー単位
15リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
1リクエスト / 15分
アプリ単位
GET /2/tweets/:id/liking_users75リクエスト / 15分
ユーザーごと
75リクエスト / 15分
アプリごと
5リクエスト / 15分
ユーザーごと
25リクエスト / 15分
アプリごと
1リクエスト / 15分
ユーザーごと
1リクエスト / 15分
アプリごと
GET /2/tweets/:id/quote_tweets15分あたり75リクエスト
ユーザー単位
15分あたり75リクエスト
アプリ単位
15分あたり5リクエスト
ユーザー単位
15分あたり5リクエスト
アプリ単位
15分あたり1リクエスト
ユーザー単位
15分あたり1リクエスト
アプリ単位
GET /2/tweets/:id/retweeted_by15分あたり 75リクエスト
ユーザー単位
15分あたり 75リクエスト
アプリ単位
15分あたり 5リクエスト
ユーザー単位
15分あたり 5リクエスト
アプリ単位
15分あたり 1リクエスト
ユーザー単位
15分あたり 1リクエスト
アプリ単位
GET /2/tweets/counts/all300リクエスト / 15分
アプリごと
GET /2/tweets/counts/recent15分あたり 300回のリクエスト
アプリごと
15分あたり 5回のリクエスト
アプリごと
15分あたり 1回のリクエスト
アプリごと
GET /2/tweets/search/all1 リクエスト/秒
ユーザー単位
1 リクエスト/秒
アプリ単位
GET /2/tweets/search/recent15分あたり 300 リクエスト
ユーザー単位
15分あたり 450 リクエスト
アプリ単位
15分あたり 60 リクエスト
ユーザー単位
15分あたり 60 リクエスト
アプリ単位
15分あたり 1 リクエスト
ユーザー単位
15分あたり 1 リクエスト
アプリ単位
GET /2/tweets/search/stream15分あたり50リクエスト
アプリ単位
GET /2/tweets/search/stream/rules15分あたり450リクエスト
アプリごと
GET /2/users/:id/liked_tweets15分あたり 75件のリクエスト
ユーザーごと
15分あたり 75件のリクエスト
アプリごと
15分あたり 5件のリクエスト
ユーザーごと
15分あたり 5件のリクエスト
アプリごと
15分あたり 1件のリクエスト
ユーザーごと
15分あたり 1件のリクエスト
アプリごと
GET /2/users/:id/mentions300件のリクエスト / 15分
ユーザーごと
450件のリクエスト / 15分
アプリごと
10件のリクエスト / 15分
ユーザーごと
15件のリクエスト / 15分
アプリごと
1件のリクエスト / 15分
ユーザーごと
1件のリクエスト / 15分
アプリごと
GET /2/users/:id/timelines/reverse_chronological15分あたり 180 回のリクエスト
ユーザー単位
15分あたり 5 回のリクエスト
ユーザー単位
15分あたり 1 回のリクエスト
ユーザー単位
GET /2/users/:id/tweets15分あたり900リクエスト
ユーザー単位
15分あたり1500リクエスト
アプリ単位
15分あたり5リクエスト
ユーザー単位
15分あたり10リクエスト
アプリ単位
15分あたり1リクエスト
ユーザー単位
15分あたり1リクエスト
アプリ単位
GET /2/users/reposts_of_me75リクエスト / 15分
ユーザー単位
75リクエスト / 15分
ユーザー単位
1リクエスト / 15分
ユーザー単位
POST /2/tweets100件のリクエスト / 15分
ユーザー単位
10,000件のリクエスト / 24時間
アプリ単位
100件のリクエスト / 24時間
ユーザー単位
1,667件のリクエスト / 24時間
アプリ単位
17件のリクエスト / 24時間
ユーザー単位
17件のリクエスト / 24時間
アプリ単位
POST /2/tweets/search/stream/rules100リクエスト / 15分
アプリ単位
POST /2/users/:id/likes24時間あたり 1000件のリクエスト
ユーザー単位
24時間あたり 200件のリクエスト
ユーザー単位
15分あたり 1件のリクエスト
ユーザー単位
POST /2/users/:id/retweets50 requests / 15 mins
ユーザー単位
5 requests / 15 mins
ユーザー単位
1 requests / 15 mins
ユーザー単位
PUT /2/tweets/:tweet_id/hidden50リクエスト / 15分
ユーザーごと
5リクエスト / 15分
ユーザーごと
1リクエスト / 15分
ユーザーごと
ユーザー
DELETE /2/users/:source_user_id/following/:target_user_id15分あたり50件のリクエスト
ユーザーごと
15分あたり5件のリクエスト
ユーザーごと
15分あたり1件のリクエスト
ユーザーごと
DELETE /2/users/:source_user_id/muting/:target_user_id50 requests / 15 mins
ユーザー単位
5 requests / 15 mins
ユーザー単位
1 requests / 15 mins
ユーザー単位
GET /2/users15分あたり 900 リクエスト
ユーザーごと
15分あたり 300 リクエスト
アプリごと
24時間あたり 100 リクエスト
ユーザーごと
24時間あたり 500 リクエスト
アプリごと
24時間あたり 1 リクエスト
ユーザーごと
24時間あたり 1 リクエスト
アプリごと
GET /2/users/:id900件のリクエスト / 15分
ユーザーごと
300件のリクエスト / 15分
アプリごと
100件のリクエスト / 24時間
ユーザーごと
500件のリクエスト / 24時間
アプリごと
1件のリクエスト / 24時間
ユーザーごと
1件のリクエスト / 24時間
アプリごと
GET /2/users/:id/blocking15件のリクエスト / 15分
ユーザーごと
5件のリクエスト / 15分
ユーザーごと
1件のリクエスト / 15分
ユーザーごと
GET /2/users/:id/muting15件のリクエスト / 15分
ユーザー単位
100件のリクエスト / 24時間
ユーザー単位
1件のリクエスト / 24時間
ユーザー単位
GET /2/users/by15分あたり900リクエスト
ユーザー単位
15分あたり300リクエスト
アプリ単位
24時間あたり100リクエスト
ユーザー単位
24時間あたり500リクエスト
アプリ単位
24時間あたり1リクエスト
ユーザー単位
24時間あたり1リクエスト
アプリ単位
GET /2/users/by/username/:username15分あたり900リクエスト
ユーザー単位
15分あたり300リクエスト
アプリ単位
24時間あたり100リクエスト
ユーザー単位
24時間あたり500リクエスト
アプリ単位
15分あたり3リクエスト
ユーザー単位
15分あたり3リクエスト
アプリ単位
GET /2/users/me75リクエスト / 15分
ユーザーごと
250リクエスト / 24時間
ユーザーごと
25リクエスト / 24時間
ユーザーごと
GET /2/users/search900 requests / 15 mins
ユーザー単位
300 requests / 15 mins
アプリ単位
POST /2/users/:id/following15分あたり50リクエスト
ユーザー単位
15分あたり5リクエスト
ユーザー単位
15分あたり1リクエスト
ユーザー単位
POST /2/users/:id/muting50件のリクエスト / 15分
ユーザー単位
5件のリクエスト / 15分
ユーザー単位
1件のリクエスト / 15分
ユーザー単位
Spaces
GET /2/spaces15分あたり300件のリクエスト
ユーザー単位
15分あたり300件のリクエスト
アプリ単位
15分あたり5件のリクエスト
ユーザー単位
15分あたり25件のリクエスト
アプリ単位
15分あたり1件のリクエスト
ユーザー単位
15分あたり1件のリクエスト
アプリ単位
GET /2/spaces/:id300リクエスト / 15分
ユーザー単位
300リクエスト / 15分
アプリ単位
5リクエスト / 15分
ユーザー単位
25リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
1リクエスト / 15分
アプリ単位
GET /2/spaces/:id/buyers15分あたり300件
ユーザー単位
15分あたり300件
アプリ単位
15分あたり5件
ユーザー単位
15分あたり25件
アプリ単位
15分あたり1件
ユーザー単位
15分あたり1件
アプリ単位
GET /2/spaces/:id/tweets15分あたり 300 リクエスト
ユーザーあたり
15分あたり 300 リクエスト
アプリあたり
15分あたり 5 リクエスト
ユーザーあたり
15分あたり 25 リクエスト
アプリあたり
15分あたり 1 リクエスト
ユーザーあたり
15分あたり 1 リクエスト
アプリあたり
GET /2/spaces/by/creator_ids300件のリクエスト / 15分
ユーザー単位
1件/秒
アプリ単位
5件のリクエスト / 15分
ユーザー単位
25件/秒
アプリ単位
1件/秒
ユーザー単位
1件のリクエスト / 15分
アプリ単位
GET /2/spaces/search15分あたり300件のリクエスト
ユーザーごと
15分あたり300件のリクエスト
アプリごと
15分あたり5件のリクエスト
ユーザーごと
15分あたり25件のリクエスト
アプリごと
15分あたり1件のリクエスト
ユーザーごと
15分あたり1件のリクエスト
アプリごと
ダイレクトメッセージ
DELETE /2/dm_events/:id24時間あたり1500リクエスト
ユーザー単位
24時間あたり4000リクエスト
アプリ単位
15分あたり200リクエスト
ユーザー単位
24時間あたり2500リクエスト
アプリ単位
GET /2/dm_conversations/:dm_conversation_id/dm_events15 リクエスト / 15 分
ユーザー単位
1 リクエスト / 24 時間
ユーザー単位
GET /2/dm_conversations/with/:participant_id/dm_events15リクエスト / 15分
ユーザー単位
1リクエスト / 24時間
ユーザー単位
GET /2/dm_events15リクエスト / 15分
ユーザーごと
1リクエスト / 24時間
ユーザーごと
GET /2/dm_events/:id15リクエスト / 15分
ユーザー単位
5リクエスト / 24時間
ユーザー単位
POST /2/dm_conversations15件のリクエスト / 15分
ユーザー単位
1440件のリクエスト / 24時間
アプリ単位
1件のリクエスト / 24時間
ユーザー単位
1件のリクエスト / 24時間
アプリ単位
POST /2/dm_conversations/:dm_conversation_id/messages15 リクエスト / 15 分
ユーザー単位
1440 リクエスト / 24 時間
アプリ単位
1 リクエスト / 24 時間
ユーザー単位
1 リクエスト / 24 時間
アプリ単位
POST /2/dm_conversations/with/:participant_id/messages24時間あたり 1440件のリクエスト
ユーザー単位
24時間あたり 1440件のリクエスト
アプリ単位
24時間あたり 1件のリクエスト
ユーザー単位
24時間あたり 1件のリクエスト
アプリ単位
リスト
DELETE /2/lists/:id300件 / 15分
ユーザー単位
5件 / 15分
ユーザー単位
1件 / 15分
ユーザー単位
DELETE /2/lists/:id/members/:user_id300リクエスト / 15分
ユーザー単位
5リクエスト / 15分
ユーザー単位
1リクエスト / 15分
ユーザー単位
DELETE /2/users/:id/followed_lists/:list_id15分あたり50リクエスト
ユーザー単位
15分あたり5リクエスト
ユーザー単位
15分あたり1リクエスト
ユーザー単位
DELETE /2/users/:id/pinned_lists/:list_id50件のリクエスト / 15分
ユーザー単位
5件のリクエスト / 15分
ユーザー単位
1件のリクエスト / 15分
ユーザー単位
GET /2/lists/:id75 requests / 15 mins
ユーザー単位
75 requests / 15 mins
アプリ単位
5 requests / 15 mins
ユーザー単位
5 requests / 15 mins
アプリ単位
1 requests / 15 mins
ユーザー単位
1 requests / 15 mins
アプリ単位
GET /2/lists/:id/members15分あたり900リクエスト
ユーザーごと
15分あたり900リクエスト
アプリごと
15分あたり5リクエスト
ユーザーごと
15分あたり25リクエスト
アプリごと
15分あたり1リクエスト
ユーザーごと
15分あたり1リクエスト
アプリごと
GET /2/lists/:id/tweets900件のリクエスト / 15分
ユーザーあたり
900件のリクエスト / 15分
アプリあたり
5件のリクエスト / 15分
ユーザーあたり
25件のリクエスト / 15分
アプリあたり
GET /2/users/:id/list_memberships75件のリクエスト / 15分
ユーザー単位
75件のリクエスト / 15分
アプリ単位
5件のリクエスト / 15分
ユーザー単位
25件のリクエスト / 15分
アプリ単位
1件のリクエスト / 15分
ユーザー単位
1件のリクエスト / 15分
アプリ単位
GET /2/users/:id/owned_lists15件のリクエスト / 15分
ユーザー単位
15件のリクエスト / 15分
アプリ単位
100件のリクエスト / 24時間
ユーザー単位
500件のリクエスト / 24時間
アプリ単位
1件のリクエスト / 24時間
ユーザー単位
1件のリクエスト / 24時間
アプリ単位
GET /2/users/:id/pinned_lists15 リクエスト / 15 分
ユーザーごと
15 リクエスト / 15 分
アプリごと
100 リクエスト / 24 時間
ユーザーごと
500 リクエスト / 24 時間
アプリごと
1 リクエスト / 24 時間
ユーザーごと
1 リクエスト / 24 時間
アプリごと
POST /2/lists300件のリクエスト / 15分
ユーザー単位
100件のリクエスト / 24時間
ユーザー単位
1件のリクエスト / 24時間
ユーザー単位
POST /2/lists/:id/members300 リクエスト / 15 分
ユーザー単位
5 リクエスト / 15 分
ユーザー単位
1 リクエスト / 15 分
ユーザー単位
POST /2/users/:id/followed_lists15分あたり50リクエスト
ユーザー単位
15分あたり5リクエスト
ユーザー単位
15分あたり1リクエスト
ユーザー単位
POST /2/users/:id/pinned_lists50 requests / 15 mins
ユーザー単位
5 requests / 15 mins
ユーザー単位
1 requests / 15 mins
ユーザー単位
PUT /2/lists/:id300件 / 15分
ユーザー単位
5件 / 15分
ユーザー単位
1件 / 15分
ユーザー単位
ブックマーク
DELETE /2/users/:id/bookmarks/:tweet_id50件のリクエスト / 15分
ユーザー単位
5件のリクエスト / 15分
ユーザー単位
1件のリクエスト / 15分
ユーザー単位
GET /2/users/:id/bookmarks15分あたり180リクエスト
ユーザー単位
15分あたり10リクエスト
ユーザー単位
15分あたり1リクエスト
ユーザー単位
GET /2/users/:id/bookmarks/folders15分あたり50リクエスト
ユーザー単位
15分あたり50リクエスト
アプリ単位
15分あたり5リクエスト
ユーザー単位
15分あたり5リクエスト
アプリ単位
15分あたり1リクエスト
ユーザー単位
15分あたり1リクエスト
アプリ単位
GET /2/users/:id/bookmarks/folders/:folder_id50リクエスト / 15分
ユーザー単位
50リクエスト / 15分
アプリ単位
5リクエスト / 15分
ユーザー単位
5リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
1リクエスト / 15分
アプリ単位
POST /2/users/:id/bookmarks15分あたり 50 リクエスト
ユーザー単位
15分あたり 5 リクエスト
ユーザー単位
15分あたり 1 リクエスト
ユーザー単位
コンプライアンス
GET /2/compliance/jobs150 リクエスト / 15分
アプリごと
5 リクエスト / 15分
アプリごと
1 リクエスト / 15分
アプリごと
GET /2/compliance/jobs/:job_id150件のリクエスト / 15分
アプリごと
5件のリクエスト / 15分
アプリごと
1件のリクエスト / 15分
アプリごと
POST /2/compliance/jobs150リクエスト / 15分
アプリごと
15リクエスト / 15分
アプリごと
1リクエスト / 15分
アプリごと
使用方法
GET /2/usage/tweets50件のリクエスト / 15分
アプリごと
50件のリクエスト / 15分
アプリごと
1件のリクエスト / 15分
アプリごと
トレンド
GET /2/trends/by/woeid/:id75件 / 15分
アプリごと
15件 / 15分
アプリごと
GET /2/users/personalized_trends10 リクエスト / 15 分
ユーザー単位
200 リクエスト / 15 分
アプリ単位
1 リクエスト / 15 分
ユーザー単位
20 リクエスト / 15 分
アプリ単位
1 リクエスト / 15 分
ユーザー単位
1 リクエスト / 24 時間
アプリ単位
コミュニティ
GET /2/communities/:id300リクエスト / 15分
ユーザー単位
300リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
25リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
1リクエスト / 15分
アプリ単位
GET /2/communities/search300リクエスト / 15分
ユーザー単位
300リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
25リクエスト / 15分
アプリ単位
1リクエスト / 15分
ユーザー単位
1リクエスト / 15分
アプリ単位

レート制限と認証方法

レート制限は、開発者アプリおよびユーザーアクセス トークンの両レベルで設定されています。
  • OAuth 2.0 Bearer Token: アプリのレート制限 この方法では、開発者アプリを代表して一定数のリクエストを実行できます。この認証方法を使用する場合、制限は Bearer Token を用いて行われたリクエスト数によって決まります。
    • 例: 15分間で450件の上限がある場合、その間隔内でアプリを代表して450件のリクエストを行えます。
  • OAuth 1.0a User Context: ユーザーのレート制限 この方法では、ユーザー Access Token によって識別されるXユーザーを代表してリクエストを行えます。たとえば、Postの非公開メトリクスを取得する場合は、そのユーザー向けに3-legged OAuth フローで生成したユーザー Access Token を用いて認証します。
    • 例: ユーザーごとに15分あたり900件の上限がある場合、その時間枠内でユーザーごとに最大900件のリクエストを行えます。

HTTP ヘッダーとレスポンスコード

最新のリクエストに基づき、指定のレート制限におけるアプリの現在の状況を把握するために、HTTP ヘッダーを使用します。
  • x-rate-limit-limit: 当該エンドポイントのレート制限の上限
  • x-rate-limit-remaining: 15 分間ウィンドウでの残りリクエスト数
  • x-rate-limit-reset: レート制限がリセットされるまでの残り時間(UTC のエポック秒)

エラーレスポンス

アプリがエンドポイントのレート制限を超過した場合、API はレスポンス本文に次のエラーメッセージを含む HTTP 429 “Too Many Requests” を返します。
{ "errors": [ { "code": 88, "message": "レート制限を超過しました" } ] }

レート制限からの復旧

これらのレート制限を超えると、エンドポイントから 429 “Too many requests” エラーが返されます。以下のとおり、レート制限エラーが発生した場合のベストプラクティスは、制限のリセット時刻を示す HTTP ヘッダーを確認し、それまでリクエストを一時停止することです。
“Too many requests” またはレート制限エラーが発生した場合は、リクエストの頻度を落とす必要があります。レート制限エラーが発生したら、x-rate-limit-reset: HTTP ヘッダーを確認して、レート制限のリセット時刻を把握してください

。もう一つの一般的なパターンは指数バックオフで、リクエスト間隔を短く(例:数秒)から始め、再試行のたびにその間隔を倍にしていきます。これは、リクエストが成功するか、リクエスト間隔の合理的な上限(例:数分)に達するまで続けます。

理想的には、クライアント側が既存のレート制限を把握し、現在超過しているウィンドウが終了するまでリクエストを一時停止できるのが望ましいです。15 分の制限を超えた場合は、1~2 分待ってから再試行すると良いでしょう。

リクエスト数の制限に加えて、Standard ベーシックのアクセスレベルでは、recent search と filtered stream の各エンドポイントから、月あたり最大 500,000 件の Post を取得できます。月間の Post 上限を超えた場合は、アプリで通知を行い、毎月の登録日を把握して、その日までリクエストを見合わせる方が適切です。

レート制限を回避するためのヒント

以下のヒントは、防御的な実装を行い、レート制限を受ける可能性を下げるのに役立ちます。提供したい一部のアプリ機能は、特に結果の鮮度に関しては、レート制限の制約上、実現が難しい場合があります。アプリでリアルタイム性を重視する場合は、フィルタードストリームおよびサンプルドストリームのエンドポイントを検討してください。

キャッシュ

頻繁な利用が見込まれる場合は、API レスポンスを保存します。ページを読み込むたびに API を呼び出すのではなく、レスポンスをローカルにキャッシュしてください。

アクティブなユーザーを優先する

サイトが多数のXユーザーを追跡している場合(例:現在のステータスやXの利用状況の統計を取得している場合)、直近にサイトへサインインしたユーザーに対してのみdataのリクエストを行うことを検討してください。

検索結果に合わせて調整する

アプリで多数の検索語を監視している場合は、結果が返らない検索は、結果が返る検索よりも照会頻度を下げてください。バックオフを用いることで、人気のあるクエリは最新の状態に保ちつつ、ほとんど変化しないクエリのリクエストに無駄な計算リソースを費やさずに済みます。あるいは、Filtered Stream エンドポイントを使用し、検索クエリでフィルタリングすることも検討してください。

拒否リスト

アプリケーションがレート制限を悪用した場合、拒否されます。拒否されたアプリは X API からレスポンスを受け取れません。あなた、またはあなたのアプリケーションが拒否され、誤りだと思われる場合は、Platform Support forms からサポートを依頼できます。次の情報を含めてください:
  1. アプリケーションが拒否されたと考える理由を説明してください。
  2. すでにレート制限の対象でなくなっている場合は、どのように問題を解決したのかを詳細に記載してください。