What is the rate limit for the premium search API?



The documentation for the premium search api is very confusing. The standard twitter search api (user auth) suggests a rate limit of 180 requests per rate limit window.

Here is the documentation for the premium api rate limits and the total request numbers are different than that of the pricing page: https://developer.twitter.com/en/pricing/search-30day

Rate Limit Request rate limits at both minute and second granularity. The per minute rate limit is 60 requests per minute (30 with Sandox environment). Requests are also limited to 10 per second. Requests are aggregaged across both the data and counts endpoints. Monthly request limits are also applied. Sandbox environments are limited to 250 requests per month, and paid access can range between 500 and 100,000 requests.

So, what is the rate limit? If I’m searching with a user token on the standard api and I upgrade to premium is there now a global request limit? Is it an aggregate of all of my users or like the standard api is it user based?

Note, that I’m currently a subscriber of the Enterprise API but I’m not entirely convinced I need a streaming service as I don’t need this data in realtime.

Confused by Premium Rate limits on published rate card?
What is the meaning of level of premium of usage?

I’ve described each APIs rate limits, and request limits more specifically below. The premium API Search beta is app only and is completely separate from the search/tweets endpoint.

Standard GET search/tweets endpoint
Data available: Tweets created in the past 7 days, 100 Tweets per result page
Operators available: Standard query operators
Technical limits:

  • 180requests/15min (user auth)
  • 450requests/15min (app auth)

Sandbox, free version of premium Search API
Data available: Tweets created in the past 30 days, 100 Tweets per result page
Operators available: Premium search operators
Technical limit: 30requests/minute and burst limit of 10requests/second (app auth)
Access limit: Up to 250 requests/month (inclusive of pagination)

Premium, paid version of premium Search API
Data available: Tweets (with enrichments) created in the past 30 days, 500 Tweets per result page
Operators available: Premium search operators
Technical limit: 60requests/minute and burst limit of 10requests/second (app auth)
Access limit: variable based on tier, but starting at 500 requests/month (inclusive of pagination)


Basically I am also looking for it but still, I could not find the answer as I am confused about and because of that my documentation is not been completed and could not move forward for the github documentation.


Thanks, that was very helpful, from a consumer perspective it would be very helpful if this was in the documentation itself.

Reset requests limit after upgrade

I wanted to get clarification on premium API request limits. Here’s my situation. I have an internal app for my company (using app-only auth) that I would like to build for 10 users. I would like to refresh the custom stream for each user every 5 minutes or so. Doing the math, that would average out to around 85,000 requests per month. I would never get close to the technical limit of 60 requests per minute.

However, looking at the premium API pricing tier (https://developer.twitter.com/en/pricing/search-30day) and reading happycamper’s post above, it seems to indicate that the basic premium API access would only allow me just 3-4 hours of access for the above scenario. Is that correct?

Said differently, when Twitter says “request per period”, is the “period” a 15-minute window? Or actually a 30-day window? It seems crazy to me that anyone would have a viable use case where they’d only need to request info 500 times per month, but I can’t find any docs that indicate otherwise.

Thanks for clarifying!

How long do I have to wait after request usage has been maxed out?

For the premium API the request periods are 30 days. 500 requests is the starting paid tier for 30-day search, with an additional 4 tiers that scale to 10000 requests per month. Note that you also have access to a larger number of Tweets per request than you would on the standard search API (500 Tweets per request instead of 100).


Thanks for clarifying. So, to get 85k requests per month, I would need an Enterprise Level access, as the highest premium tier is 10k. Correct?


You’d obviously want to consider what you’re building here - you refer to 10 users and streams, and at the current time the only premium API launched is 30-day search, so if that’s the endpoint you wanted to build your solution on, then yes, there’s no monthly pricing option in premium that would support the numbers you are requesting right now and you’d need to talk to the team about enterprise 30-day search access.

You may want to consider something like Powertrack (which is enterprise also), or look at ways of configuring the solution you’re building within the request limits.

Bearing in mind that each request is going to perform a search for some terms within a 30-day window, and you could be getting back 500 Tweets at a time, there may be far less variance in results than you might expect i.e. spacing out your requests at full volume could provide as high a volume and quality of data as you might be assuming you need 85k calls for. Difficult to say without understanding the purpose of the solution!


Thanks. One final follow-up. If I can live with the search limitations of the basic public API (relevance, not completeness, 100 tweets per request, etc.), would I hit the rate limits in the above scenario? The docs don’t mention access limits for the basic API, just limits related to minute and 15-min windows.


The limits for the standard search remain based on requests per 15-minute window and do not “time out” over 30 days.


I am a bit disappointed or maybe I don’t understand something.
Let’s say I’m searching for a topic like #aliens in 2017, and let’s assume 10000 people tweeted about this in the last year. ( I can get this 10000 tweets with so far 1 request, right? ).
But then I want to know for each tweet, who retweeted it, exactly when, and how many followers these retweeters have. So I can see how fast the “news” spread. I think this would be 10000 request, but I can’t do that because there is the 500 request per month limit!? So after 20 (or maybe after 21) months, sending 500 request per month I will finally get my answer, right?
Or is there any other solution to solve this with less request?


Using your example and the premium Search Tweets: Full-Archive endpoint, you could get the Tweets and retweets matching the hashtag, but the user data for Search is updated at the time of the request and would not be a snapshot in time for their followers at the time of the Tweet. (Historical Powertrack does have a user snapshot, but the Search does not).

Also, if you didn’t want retweets, you could negate them:

Query: #aliens -is:retweet
fromDate: 2017-01-01 00:00 UTC
to date: 2018-01-01 00:00 UTC
maxResults: 100 (or 500) per request/page of results

Assuming that there are over 500 Tweets per 31 day period and the results would be saturated, you could get

50 requests X 100 tweets = 5,000 Tweets for free using the sandbox only
100 requests X 500 tweets = 50,000 Tweets for $99 at the first tier

up to
2500 requests X 500 tweets = 1,250,000 for $1899

In the last ~6months, there have been
~200K tweets matching (#aliens)
~ 98K tweets matching (#aliens -is:retweet)

So you would probably want to make your filter more specific to reduce the noise and improve your search efficiency.