レート制限:スタンダードv1.1

このページでは、スタンダードv1.1のエンドポイントのレート制限について説明します。 

プレミアムv1.1エンタープライズTwitter API v2のレート制限ページもあります。 

概要

スタンダード

毎日、数千人もの開発者がTwitter APIに対してリクエストを実行しています。こうした膨大な量のリクエストを管理しやすくするために、実行できるリクエストの数には制限が設けられています。こうした制限を設けることで、開発者コミュニティが安心して利用できる、信頼性と拡張性に優れたAPIの提供を実現しています。 

実行できるリクエストの最大数は一定の期間または時間間隔を1つの単位として設定されています。最も一般的なリクエスト制限間隔は15分です。エンドポイントのレート制限が15分あたり900リクエストの場合は、15分の間に900件までリクエストを実行できます。 

適用されるレート制限は使用している認証方法によって異なります。たとえば、OAuth 1.0aユーザーコンテキストを使用している場合、ユーザーのアクセストークン1セットにつき、1期間あたり1つの制限が適用されます。一方、OAuth 2.0ベアラートークンを使用している場合は、アプリによって実行されるリクエストに対して、1期間ごとに異なる制限が適用されます。これらの制限を超過するとエラーが返されます。ここからは、これらの制限の詳細と、レート制限を受けないようにするためのヒントを紹介していきます。 

 

レート制限と認証方法

開発者アプリとユーザーアクセストークン両方のレベルでレート制限が設定されています。

  • OAuth 2.0ベアラートークン:開発者アプリ単位
    Twitter API v1.1のすべてのエンドポイントでこの認証方法を使用できます。そのため、開発者アプリに代わって特定数のリクエストをエンドポイントに対して実行する場合のみ、制限が適用されます。この認証方法を使用する場合は、ベアラートークンを使用して実行するリクエストの数によってレート制限が決定されます。エンドポイントでレート制限時間枠あたり450リクエストまで許可されている場合、ベアラートークンを渡すことで、アプリに代わって時間枠内に450回リクエストを実行できます。この制限はOAuth 1.0aユーザーコンテキストの制限とは完全に切り離してカウントされます。

  • OAuth 1.0aユーザーコンテキスト:ユーザーアクセストークンセット単位
    ツイートの検索と最近の検索では、ユーザーに代わって認証を行うことができます。たとえば、ツイートからプライベートメトリックを取得する場合は、対象ユーザーに関連付けられているユーザートークンで認証する必要があります。このトークンは3レッグ認証OAuthフローを使用して生成できます。 10人のユーザーが開発者アプリを許可しており、各ユーザーに代わって15分の間に900回までリクエストを実行できる場合、これらのユーザーの代わりに9,000回までリクエストを実行できます。この制限はアプリケーション単位のベアラートークンの制限とは完全に切り離してカウントされます。 

 


ユーザーのレート制限はユーザーが許可しているすべてのアプリとTwitterアプリケーションでカウントされます。たとえば、あるユーザーが24時間の間にTwitterのモバイルアプリケーションで20件のツイートにいいねし、サードパーティアプリケーションで20件のツイートにいいねした場合、合計40件のリクエストがそのユーザーのレート制限としてカウントされます。つまり、このエンドポイントのユーザーレート制限が24時間あたり1,000リクエストの場合、Twitterとサードパーティのアプリを合計して、24時間の時間枠のなかでこのユーザーはあと960件のツイートにいいねできることになります。 


スタンダードAPI v1.1の時間枠あたりのレート制限

POSTエンドポイント

この表で説明しているスタンダードAPIのレート制限はPOSTエンドポイントに関するものです。これらのレート制限はスタンダードAPIのエンドポイントにのみ適用され、プレミアムAPIには適用されません。

エンドポイント レート制限の時間枠 ユーザーあたりのレート制限 アプリあたりのレート制限
POST statuses/update
3時間* 300* 300*
POST statuses/retweet/:id
3時間* 300* 300*
POST favorites/create
24時間 1,000 1,000
POST friendships/create
24時間 400 1,000
POST direct_messages/events/new
24時間 1,000 15,000

 

:3時間につき300件までという制限はPOST statuses/updateエンドポイントとPOST statuses/retweet/:idエンドポイント両方でカウントされます。つまり、3時間の間に投稿できるツイートとリツイートの件数は合計で300件までです。 

たとえば、3時間の間にTwitterアプリがPOST statuses/updateエンドポイントに対して200件のリクエストを実行した場合、同じ時間枠のなかで開発者アプリがPOST statuses/retweet/:idエンドポイントに対して実行できるリクエストは100件までということになります。 
 

GETエンドポイント

この表で説明しているスタンダードAPIのレート制限はGET(読み取り)エンドポイントに関するものです。表に記載のないエンドポイントでは、割り当てユーザーあたりのリクエスト件数がデフォルトで15件となっています。また、リクエスト時間枠はすべて15分です。  これらのレート制限はスタンダードAPIのエンドポイントにのみ適用され、プレミアムAPIには適用されません。

エンドポイント 時間枠内で実行できるリクエスト件数(ユーザー単位) 時間枠内で実行できるリクエスト件数(アプリ単位)
GET account/verify_credentials 75 0
GET application/rate_limit_status 180 180
GET favorites/list 75 75
GET followers/ids 15 15
GET followers/list 15 15
GET friends/ids 15 15
GET friends/list 15 15
GET friendships/show 180 15
GET geo/id/:place_id 75 0
GET help/configuration 15 15
GET help/languages 15 15
GET help/privacy 15 15
GET help/tos 15 15
GET lists/list 15 15
GET lists/members 900 75
GET lists/members/show 15 15
GET lists/memberships 75 75
GET lists/ownerships 15 15
GET lists/show 75 75
GET lists/statuses 900 900
GET lists/subscribers 180 15
GET lists/subscribers/show 15 15
GET lists/subscriptions 15 15
GET search/tweets 180 450
GET statuses/lookup 900 300
GET statuses/mentions_timeline 75 0
GET statuses/retweeters/ids 75 300
GET statuses/retweets_of_me 75 0
GET statuses/retweets/:id 75 300
GET statuses/show/:id 900 900
GET statuses/user_timeline 900 1,500
GET trends/available 75 75
GET trends/closest 75 75
GET trends/place 75 75
GET users/lookup 900 300
GET users/search 900 0
GET users/show 900 900
GET users/suggestions 15 15
GET users/suggestions/:slug 15 15
GET users/suggestions/:slug/members 15 15