Rate Limits for GET statuses/user_timeline? Application Only Auth


#1

I am using C# and LinqToTwitter and am struggling to understand the rate limits for Rest API v1.1.

In my web application a call is made to Twitter each time a user’s profile page is visited, and my application attempts to get two of the latest tweets for the user that is being viewed.

The authentication is for my Twitter applcation, and the limit appears to be 300 calls per 15 minute block.

This seems way too low. What if I have 300 users online in my applcation? The rate will be exceeded almost immediately.

The only calls I make to Twitter with my web application are to view 2 of a given user’s latest Tweets, nothing else.

Could someone explain to me if I am wrong about the limit, or is there some other way to achieve what I have described? As 300 calls is not enough per 15 minute block.

Does the limit apply to anyone using my application, or differently per IP/machine? I have tested this myself and it appears that the limit applies across different machines and IPS.


#2

There are two kinds of rate limits in API v1.1 – per-user limits and per-app limits. They are separate pools. Require your end-users to authenticate with your app and leverage their access tokens to make use of per-user limits. Use app-only auth to leverage the per-app limits.

The best way to scale your use of the API with your userbase is by requiring your users to authenticate.


#3

So the limit is 300 if I authenticate by application? No way around that?

I do it this way as I do not want a user to have to auth with Twitter at all. They might not even have a Twitter account at all but will still be able to view other user’s Tweets.


#4

Can anyone suggest a possible way of being able to access Tweets by username, for an application that will not require user’s to authenticate with Twitter?


#5

The only way to scale your application based on end-user usage is to require them to authenticate.

Otherwise, a server-side solution and heavy caching using app-only auth is going to be your best option. The limits are such that you can only offer limited experiences to logged out users.