目次
X API v2 のレート制限
| エンドポイント | プロの上限 | ベーシックの上限 | 無料の上限 |
|---|---|---|---|
| Tweet | |||
| DELETE /2/tweets/:id | 50 リクエスト / 15 分 ユーザーごと | 5 リクエスト / 15 分 ユーザーごと | 24 時間あたり 17 リクエスト ユーザーごと 24 時間あたり 17 リクエスト アプリごと |
| DELETE /2/users/:id/likes/:tweet_id | 50リクエスト / 15分 ユーザー単位 | 100リクエスト / 24時間 ユーザー単位 | 1リクエスト / 15分 ユーザー単位 |
| DELETE /2/users/:id/retweets/:tweet_id | 50件のリクエスト / 15分 ユーザーごと | 5件のリクエスト / 15分 ユーザーごと | 1件のリクエスト / 15分 ユーザーごと |
| GET /2/tweets | 900件のリクエスト / 15分 ユーザー単位 450件のリクエスト / 15分 アプリ単位 | 15件のリクエスト / 15分 ユーザー単位 15件のリクエスト / 15分 アプリ単位 | 1件のリクエスト / 15分 ユーザー単位 1件のリクエスト / 15分 アプリ単位 |
| GET /2/tweets/:id | 900リクエスト / 15分 ユーザー単位 450リクエスト / 15分 アプリ単位 | 15リクエスト / 15分 ユーザー単位 15リクエスト / 15分 アプリ単位 | 1リクエスト / 15分 ユーザー単位 1リクエスト / 15分 アプリ単位 |
| GET /2/tweets/:id/liking_users | 75リクエスト / 15分 ユーザーごと 75リクエスト / 15分 アプリごと | 5リクエスト / 15分 ユーザーごと 25リクエスト / 15分 アプリごと | 1リクエスト / 15分 ユーザーごと 1リクエスト / 15分 アプリごと |
| GET /2/tweets/:id/quote_tweets | 15分あたり75リクエスト ユーザー単位 15分あたり75リクエスト アプリ単位 | 15分あたり5リクエスト ユーザー単位 15分あたり5リクエスト アプリ単位 | 15分あたり1リクエスト ユーザー単位 15分あたり1リクエスト アプリ単位 |
| GET /2/tweets/:id/retweeted_by | 15分あたり 75リクエスト ユーザー単位 15分あたり 75リクエスト アプリ単位 | 15分あたり 5リクエスト ユーザー単位 15分あたり 5リクエスト アプリ単位 | 15分あたり 1リクエスト ユーザー単位 15分あたり 1リクエスト アプリ単位 |
| GET /2/tweets/counts/all | 300リクエスト / 15分 アプリごと | ||
| GET /2/tweets/counts/recent | 15分あたり 300回のリクエスト アプリごと | 15分あたり 5回のリクエスト アプリごと | 15分あたり 1回のリクエスト アプリごと |
| GET /2/tweets/search/all | 1 リクエスト/秒 ユーザー単位 1 リクエスト/秒 アプリ単位 | ||
| GET /2/tweets/search/recent | 15分あたり 300 リクエスト ユーザー単位 15分あたり 450 リクエスト アプリ単位 | 15分あたり 60 リクエスト ユーザー単位 15分あたり 60 リクエスト アプリ単位 | 15分あたり 1 リクエスト ユーザー単位 15分あたり 1 リクエスト アプリ単位 |
| GET /2/tweets/search/stream | 15分あたり50リクエスト アプリ単位 | ||
| GET /2/tweets/search/stream/rules | 15分あたり450リクエスト アプリごと | ||
| GET /2/users/:id/liked_tweets | 15分あたり 75件のリクエスト ユーザーごと 15分あたり 75件のリクエスト アプリごと | 15分あたり 5件のリクエスト ユーザーごと 15分あたり 5件のリクエスト アプリごと | 15分あたり 1件のリクエスト ユーザーごと 15分あたり 1件のリクエスト アプリごと |
| GET /2/users/:id/mentions | 300件のリクエスト / 15分 ユーザーごと 450件のリクエスト / 15分 アプリごと | 10件のリクエスト / 15分 ユーザーごと 15件のリクエスト / 15分 アプリごと | 1件のリクエスト / 15分 ユーザーごと 1件のリクエスト / 15分 アプリごと |
| GET /2/users/:id/timelines/reverse_chronological | 15分あたり 180 回のリクエスト ユーザー単位 | 15分あたり 5 回のリクエスト ユーザー単位 | 15分あたり 1 回のリクエスト ユーザー単位 |
| GET /2/users/:id/tweets | 15分あたり900リクエスト ユーザー単位 15分あたり1500リクエスト アプリ単位 | 15分あたり5リクエスト ユーザー単位 15分あたり10リクエスト アプリ単位 | 15分あたり1リクエスト ユーザー単位 15分あたり1リクエスト アプリ単位 |
| GET /2/users/reposts_of_me | 75リクエスト / 15分 ユーザー単位 | 75リクエスト / 15分 ユーザー単位 | 1リクエスト / 15分 ユーザー単位 |
| POST /2/tweets | 100件のリクエスト / 15分 ユーザー単位 10,000件のリクエスト / 24時間 アプリ単位 | 100件のリクエスト / 24時間 ユーザー単位 1,667件のリクエスト / 24時間 アプリ単位 | 17件のリクエスト / 24時間 ユーザー単位 17件のリクエスト / 24時間 アプリ単位 |
| POST /2/tweets/search/stream/rules | 100リクエスト / 15分 アプリ単位 | ||
| POST /2/users/:id/likes | 24時間あたり 1000件のリクエスト ユーザー単位 | 24時間あたり 200件のリクエスト ユーザー単位 | 15分あたり 1件のリクエスト ユーザー単位 |
| POST /2/users/:id/retweets | 50 requests / 15 mins ユーザー単位 | 5 requests / 15 mins ユーザー単位 | 1 requests / 15 mins ユーザー単位 |
| PUT /2/tweets/:tweet_id/hidden | 50リクエスト / 15分 ユーザーごと | 5リクエスト / 15分 ユーザーごと | 1リクエスト / 15分 ユーザーごと |
| ユーザー | |||
| DELETE /2/users/:source_user_id/following/:target_user_id | 15分あたり50件のリクエスト ユーザーごと | 15分あたり5件のリクエスト ユーザーごと | 15分あたり1件のリクエスト ユーザーごと |
| DELETE /2/users/:source_user_id/muting/:target_user_id | 50 requests / 15 mins ユーザー単位 | 5 requests / 15 mins ユーザー単位 | 1 requests / 15 mins ユーザー単位 |
| GET /2/users | 15分あたり 900 リクエスト ユーザーごと 15分あたり 300 リクエスト アプリごと | 24時間あたり 100 リクエスト ユーザーごと 24時間あたり 500 リクエスト アプリごと | 24時間あたり 1 リクエスト ユーザーごと 24時間あたり 1 リクエスト アプリごと |
| GET /2/users/:id | 900件のリクエスト / 15分 ユーザーごと 300件のリクエスト / 15分 アプリごと | 100件のリクエスト / 24時間 ユーザーごと 500件のリクエスト / 24時間 アプリごと | 1件のリクエスト / 24時間 ユーザーごと 1件のリクエスト / 24時間 アプリごと |
| GET /2/users/:id/blocking | 15件のリクエスト / 15分 ユーザーごと | 5件のリクエスト / 15分 ユーザーごと | 1件のリクエスト / 15分 ユーザーごと |
| GET /2/users/:id/muting | 15件のリクエスト / 15分 ユーザー単位 | 100件のリクエスト / 24時間 ユーザー単位 | 1件のリクエスト / 24時間 ユーザー単位 |
| GET /2/users/by | 15分あたり900リクエスト ユーザー単位 15分あたり300リクエスト アプリ単位 | 24時間あたり100リクエスト ユーザー単位 24時間あたり500リクエスト アプリ単位 | 24時間あたり1リクエスト ユーザー単位 24時間あたり1リクエスト アプリ単位 |
| GET /2/users/by/username/:username | 15分あたり900リクエスト ユーザー単位 15分あたり300リクエスト アプリ単位 | 24時間あたり100リクエスト ユーザー単位 24時間あたり500リクエスト アプリ単位 | 15分あたり3リクエスト ユーザー単位 15分あたり3リクエスト アプリ単位 |
| GET /2/users/me | 75リクエスト / 15分 ユーザーごと | 250リクエスト / 24時間 ユーザーごと | 25リクエスト / 24時間 ユーザーごと |
| GET /2/users/search | 900 requests / 15 mins ユーザー単位 300 requests / 15 mins アプリ単位 | ||
| POST /2/users/:id/following | 15分あたり50リクエスト ユーザー単位 | 15分あたり5リクエスト ユーザー単位 | 15分あたり1リクエスト ユーザー単位 |
| POST /2/users/:id/muting | 50件のリクエスト / 15分 ユーザー単位 | 5件のリクエスト / 15分 ユーザー単位 | 1件のリクエスト / 15分 ユーザー単位 |
| Spaces | |||
| GET /2/spaces | 15分あたり300件のリクエスト ユーザー単位 15分あたり300件のリクエスト アプリ単位 | 15分あたり5件のリクエスト ユーザー単位 15分あたり25件のリクエスト アプリ単位 | 15分あたり1件のリクエスト ユーザー単位 15分あたり1件のリクエスト アプリ単位 |
| GET /2/spaces/:id | 300リクエスト / 15分 ユーザー単位 300リクエスト / 15分 アプリ単位 | 5リクエスト / 15分 ユーザー単位 25リクエスト / 15分 アプリ単位 | 1リクエスト / 15分 ユーザー単位 1リクエスト / 15分 アプリ単位 |
| GET /2/spaces/:id/buyers | 15分あたり300件 ユーザー単位 15分あたり300件 アプリ単位 | 15分あたり5件 ユーザー単位 15分あたり25件 アプリ単位 | 15分あたり1件 ユーザー単位 15分あたり1件 アプリ単位 |
| GET /2/spaces/:id/tweets | 15分あたり 300 リクエスト ユーザーあたり 15分あたり 300 リクエスト アプリあたり | 15分あたり 5 リクエスト ユーザーあたり 15分あたり 25 リクエスト アプリあたり | 15分あたり 1 リクエスト ユーザーあたり 15分あたり 1 リクエスト アプリあたり |
| GET /2/spaces/by/creator_ids | 300件のリクエスト / 15分 ユーザー単位 1件/秒 アプリ単位 | 5件のリクエスト / 15分 ユーザー単位 25件/秒 アプリ単位 | 1件/秒 ユーザー単位 1件のリクエスト / 15分 アプリ単位 |
| GET /2/spaces/search | 15分あたり300件のリクエスト ユーザーごと 15分あたり300件のリクエスト アプリごと | 15分あたり5件のリクエスト ユーザーごと 15分あたり25件のリクエスト アプリごと | 15分あたり1件のリクエスト ユーザーごと 15分あたり1件のリクエスト アプリごと |
| ダイレクトメッセージ | |||
| DELETE /2/dm_events/:id | 24時間あたり1500リクエスト ユーザー単位 24時間あたり4000リクエスト アプリ単位 | 15分あたり200リクエスト ユーザー単位 24時間あたり2500リクエスト アプリ単位 | |
| GET /2/dm_conversations/:dm_conversation_id/dm_events | 15 リクエスト / 15 分 ユーザー単位 | 1 リクエスト / 24 時間 ユーザー単位 | |
| GET /2/dm_conversations/with/:participant_id/dm_events | 15リクエスト / 15分 ユーザー単位 | 1リクエスト / 24時間 ユーザー単位 | |
| GET /2/dm_events | 15リクエスト / 15分 ユーザーごと | 1リクエスト / 24時間 ユーザーごと | |
| GET /2/dm_events/:id | 15リクエスト / 15分 ユーザー単位 | 5リクエスト / 24時間 ユーザー単位 | |
| POST /2/dm_conversations | 15件のリクエスト / 15分 ユーザー単位 1440件のリクエスト / 24時間 アプリ単位 | 1件のリクエスト / 24時間 ユーザー単位 1件のリクエスト / 24時間 アプリ単位 | |
| POST /2/dm_conversations/:dm_conversation_id/messages | 15 リクエスト / 15 分 ユーザー単位 1440 リクエスト / 24 時間 アプリ単位 | 1 リクエスト / 24 時間 ユーザー単位 1 リクエスト / 24 時間 アプリ単位 | |
| POST /2/dm_conversations/with/:participant_id/messages | 24時間あたり 1440件のリクエスト ユーザー単位 24時間あたり 1440件のリクエスト アプリ単位 | 24時間あたり 1件のリクエスト ユーザー単位 24時間あたり 1件のリクエスト アプリ単位 | |
| リスト | |||
| DELETE /2/lists/:id | 300件 / 15分 ユーザー単位 | 5件 / 15分 ユーザー単位 | 1件 / 15分 ユーザー単位 |
| DELETE /2/lists/:id/members/:user_id | 300リクエスト / 15分 ユーザー単位 | 5リクエスト / 15分 ユーザー単位 | 1リクエスト / 15分 ユーザー単位 |
| DELETE /2/users/:id/followed_lists/:list_id | 15分あたり50リクエスト ユーザー単位 | 15分あたり5リクエスト ユーザー単位 | 15分あたり1リクエスト ユーザー単位 |
| DELETE /2/users/:id/pinned_lists/:list_id | 50件のリクエスト / 15分 ユーザー単位 | 5件のリクエスト / 15分 ユーザー単位 | 1件のリクエスト / 15分 ユーザー単位 |
| GET /2/lists/:id | 75 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/members | 15分あたり900リクエスト ユーザーごと 15分あたり900リクエスト アプリごと | 15分あたり5リクエスト ユーザーごと 15分あたり25リクエスト アプリごと | 15分あたり1リクエスト ユーザーごと 15分あたり1リクエスト アプリごと |
| GET /2/lists/:id/tweets | 900件のリクエスト / 15分 ユーザーあたり 900件のリクエスト / 15分 アプリあたり | 5件のリクエスト / 15分 ユーザーあたり 25件のリクエスト / 15分 アプリあたり | |
| GET /2/users/:id/list_memberships | 75件のリクエスト / 15分 ユーザー単位 75件のリクエスト / 15分 アプリ単位 | 5件のリクエスト / 15分 ユーザー単位 25件のリクエスト / 15分 アプリ単位 | 1件のリクエスト / 15分 ユーザー単位 1件のリクエスト / 15分 アプリ単位 |
| GET /2/users/:id/owned_lists | 15件のリクエスト / 15分 ユーザー単位 15件のリクエスト / 15分 アプリ単位 | 100件のリクエスト / 24時間 ユーザー単位 500件のリクエスト / 24時間 アプリ単位 | 1件のリクエスト / 24時間 ユーザー単位 1件のリクエスト / 24時間 アプリ単位 |
| GET /2/users/:id/pinned_lists | 15 リクエスト / 15 分 ユーザーごと 15 リクエスト / 15 分 アプリごと | 100 リクエスト / 24 時間 ユーザーごと 500 リクエスト / 24 時間 アプリごと | 1 リクエスト / 24 時間 ユーザーごと 1 リクエスト / 24 時間 アプリごと |
| POST /2/lists | 300件のリクエスト / 15分 ユーザー単位 | 100件のリクエスト / 24時間 ユーザー単位 | 1件のリクエスト / 24時間 ユーザー単位 |
| POST /2/lists/:id/members | 300 リクエスト / 15 分 ユーザー単位 | 5 リクエスト / 15 分 ユーザー単位 | 1 リクエスト / 15 分 ユーザー単位 |
| POST /2/users/:id/followed_lists | 15分あたり50リクエスト ユーザー単位 | 15分あたり5リクエスト ユーザー単位 | 15分あたり1リクエスト ユーザー単位 |
| POST /2/users/:id/pinned_lists | 50 requests / 15 mins ユーザー単位 | 5 requests / 15 mins ユーザー単位 | 1 requests / 15 mins ユーザー単位 |
| PUT /2/lists/:id | 300件 / 15分 ユーザー単位 | 5件 / 15分 ユーザー単位 | 1件 / 15分 ユーザー単位 |
| ブックマーク | |||
| DELETE /2/users/:id/bookmarks/:tweet_id | 50件のリクエスト / 15分 ユーザー単位 | 5件のリクエスト / 15分 ユーザー単位 | 1件のリクエスト / 15分 ユーザー単位 |
| GET /2/users/:id/bookmarks | 15分あたり180リクエスト ユーザー単位 | 15分あたり10リクエスト ユーザー単位 | 15分あたり1リクエスト ユーザー単位 |
| GET /2/users/:id/bookmarks/folders | 15分あたり50リクエスト ユーザー単位 15分あたり50リクエスト アプリ単位 | 15分あたり5リクエスト ユーザー単位 15分あたり5リクエスト アプリ単位 | 15分あたり1リクエスト ユーザー単位 15分あたり1リクエスト アプリ単位 |
| GET /2/users/:id/bookmarks/folders/:folder_id | 50リクエスト / 15分 ユーザー単位 50リクエスト / 15分 アプリ単位 | 5リクエスト / 15分 ユーザー単位 5リクエスト / 15分 アプリ単位 | 1リクエスト / 15分 ユーザー単位 1リクエスト / 15分 アプリ単位 |
| POST /2/users/:id/bookmarks | 15分あたり 50 リクエスト ユーザー単位 | 15分あたり 5 リクエスト ユーザー単位 | 15分あたり 1 リクエスト ユーザー単位 |
| コンプライアンス | |||
| GET /2/compliance/jobs | 150 リクエスト / 15分 アプリごと | 5 リクエスト / 15分 アプリごと | 1 リクエスト / 15分 アプリごと |
| GET /2/compliance/jobs/:job_id | 150件のリクエスト / 15分 アプリごと | 5件のリクエスト / 15分 アプリごと | 1件のリクエスト / 15分 アプリごと |
| POST /2/compliance/jobs | 150リクエスト / 15分 アプリごと | 15リクエスト / 15分 アプリごと | 1リクエスト / 15分 アプリごと |
| 使用方法 | |||
| GET /2/usage/tweets | 50件のリクエスト / 15分 アプリごと | 50件のリクエスト / 15分 アプリごと | 1件のリクエスト / 15分 アプリごと |
| トレンド | |||
| GET /2/trends/by/woeid/:id | 75件 / 15分 アプリごと | 15件 / 15分 アプリごと | |
| GET /2/users/personalized_trends | 10 リクエスト / 15 分 ユーザー単位 200 リクエスト / 15 分 アプリ単位 | 1 リクエスト / 15 分 ユーザー単位 20 リクエスト / 15 分 アプリ単位 | 1 リクエスト / 15 分 ユーザー単位 1 リクエスト / 24 時間 アプリ単位 |
| コミュニティ | |||
| GET /2/communities/:id | 300リクエスト / 15分 ユーザー単位 300リクエスト / 15分 アプリ単位 | 1リクエスト / 15分 ユーザー単位 25リクエスト / 15分 アプリ単位 | 1リクエスト / 15分 ユーザー単位 1リクエスト / 15分 アプリ単位 |
| GET /2/communities/search | 300リクエスト / 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 ヘッダーとレスポンスコード
x-rate-limit-limit: 当該エンドポイントのレート制限の上限x-rate-limit-remaining: 15 分間ウィンドウでの残りリクエスト数x-rate-limit-reset: レート制限がリセットされるまでの残り時間(UTC のエポック秒)
エラーレスポンス
レート制限からの復旧
“Too many requests” またはレート制限エラーが発生した場合は、リクエストの頻度を落とす必要があります。レート制限エラーが発生したら、
x-rate-limit-reset: HTTP ヘッダーを確認して、レート制限のリセット時刻を把握してください。もう一つの一般的なパターンは指数バックオフで、リクエスト間隔を短く(例:数秒)から始め、再試行のたびにその間隔を倍にしていきます。これは、リクエストが成功するか、リクエスト間隔の合理的な上限(例:数分)に達するまで続けます。
理想的には、クライアント側が既存のレート制限を把握し、現在超過しているウィンドウが終了するまでリクエストを一時停止できるのが望ましいです。15 分の制限を超えた場合は、1~2 分待ってから再試行すると良いでしょう。
リクエスト数の制限に加えて、Standard ベーシックのアクセスレベルでは、recent search と filtered stream の各エンドポイントから、月あたり最大 500,000 件の Post を取得できます。月間の Post 上限を超えた場合は、アプリで通知を行い、毎月の登録日を把握して、その日までリクエストを見合わせる方が適切です。
レート制限を回避するためのヒント
キャッシュ
アクティブなユーザーを優先する
検索結果に合わせて調整する
拒否リスト
- アプリケーションが拒否されたと考える理由を説明してください。
- すでにレート制限の対象でなくなっている場合は、どのように問題を解決したのかを詳細に記載してください。