As you may be aware Twitter are transitioning all users from version 1.0 of their API to version 1.1. For most users this doesn’t mean anything nor will they be aware of this except in one specific change which may cause a lot of pain for both client developers and users alike…. Rate Limits.
What are Rate limits
Rate limits are quite simply the number of times you can access certain features on Twitter within a given time.
Rate limiting in version 1.0 of the Twitter API was quite simple, you had a bucket of 350 requests you could make in any given hour period and if you went over it, Twitter blocked you until that period had passed and all started working again. 350 was usually more than adequate for the majority of users.
However with version 1.1 of the Twitter API this has all changed. Rate limits in version 1.1 are now divided into 15 minute intervals. These rate limits are now divided into different types of request.
So for example, timeline requests will now only allow 15 calls in any 15 minute period.
How does this affect me?
With only the ability to refresh that timeline 15 times in 15 minutes you are much more likely to find yourself getting rate limit errors in any app using API 1.1.
For example lets say you use a client that does the following, allow timeline gap filling, refreshes your timeline after sending a tweet and also refreshes the timeline when you first open it.
Now let’s say you do the following.
- Open the app (1 API call to refresh)
- You’ve missed a few hours worth of tweets (1 API call per gap filling request for a few hours you’ve probably filled 3 gaps)
- Compose and send a tweet (1 API call refreshing the timeline after sending)
You can see that within the matter of less than a minute we’ve probably used up 5 API calls… we’ve now only got 14 minutes left and only the ability to call 10 more refreshes.
Each individual timeline should have it’s own 15 call rate limit so refreshes to home timeline shouldn’t affect your mentions timeline rate limit and vice versa.
Tweetings and the migration to API 1.1
Android: We have already implemented API 1.1 in Tweetings for Android and so you’ll see rate limiting errors if you go over your 15 minute limits
iPhone and iPad: We have tested API 1.1 in Tweetings for iOS but have not yet implemented it for a number of reasons. The longer history of the iOS version means we are using certain features that Twitter has decided not to port over to 1.1 so they will be removed from Tweetings. We are therefore holding off on that transition until it can no longer be avoided.
Mac: We have not yet implemented the 1.1 API but we will have to do so.
What can I do to get around the rate limit
Unfortunately very little. It is against Twitter’s Terms of Service to find ways around rate limiting. However there are certain things you can do to prevent yourself getting rate limited in the first place.
- Turn on Streaming over WiFi. Streaming over WiFi keeps a constant connection open to Twitter and therefore for the main timelines you do not need to manually refresh
- Turn off refresh after sending a tweet, where available
- Only refresh when you are expecting new tweets
There is a temporary solution in Tweetings for Android, which is already using API 1.1, and thats to go to Settings, Other and switch to using the 1.0 API for those features.
Unfortunately ALL apps will have to make the switch to API 1.1 by March 2013 or they will simply cease to work, so switching to API 1.0 in Tweetings for Android feature will only work until that time.
For more information about rate limits and how many calls you can make see Twitter’s web site
- REST API Rate Limiting in v1.1
- REST API v1.1 Limits per window by resource