Thanks. Sounds good. How about this to bake your noodle. Not to be a dead horse. But, looking here <http://dev.twitter.com/doc/post/statuses/update> it appears as though the statuses/update does not have a rate limit, other than the 1000 limit for the day that applies regardless which i have not hit. Figure it all seems confusing. Still appears that I should not even have an hourly limit with this api only the daily 1000. I guess rules of thumb although I would like to have not gotten rate limited until a higher number than the ~150 because of to much at one time. So the 150 is only for GET not POST. POST is what I do. So it looks like the 1000 is what I do hit and something that governs that limit seems to have a condition that states that if there is a lot of statuses/update within a certain time period flag the account with this rate limit for the next hour or so.
On Thu, Jul 29, 2010 at 4:59 PM, natefanaro <natefan...@gmail.com> wrote: > From personal experience the limit is around 150 per hour. That number > has been raised/lowered in the past and yes the error message is > misleading. It is possible that the 150 per hour is just a hard limit > and 1000 per day is a policy limit. Either way if you can technically > post 150 an hour that's as many as you're going to be able to do. > Unless you present a very very good case to Twitter I don't believe > this limit can be raised. > > I know the link Matt gave has some solid numbers but I wouldn't expect > any more detail than that. It's been mentioned in this group before > that exact numbers can't be given about some limits. They can change > at any time and spammers could use that info to fly under the spam > team's radar. > > On Jul 29, 3:50 pm, Eric Mortensen <emort...@gmail.com> wrote: > > Why not? If Twitter states I can send 150 an hour or 1000 a day I should > be > > able to. Not my rules its twitters. So I guess it needs to be written > > somewhere that 42 per hour is the limit. I am just trying to understand > why > > it appears that I am hitting a limit when i am only doing what twitter > > apparently allows. The limit I see is possibly the number of messages > sent > > at one time and twitter can't handle it and throws the error I have been > > receiving. So if that exists than I understand. I just need to know > where > > it is stated. The error message appears to wrong as well since I can > still > > send tweets and it has been a couple hours later. Then I can tell the > > program manager that this is why we can't send this many messages because > of > > this limit. Maybe what will help is a link stating that there are > > protections that prevent a certain number of updates/tweets happening at > > once. > > > > Thanks > > > > On Thu, Jul 29, 2010 at 3:22 PM, Matt Harris <thematthar...@twitter.com > >wrote: > > > > > Why are you sending so many Tweets? It sounds like you are being > restricted > > > because you are sending too many per hour. The limit of updates per day > > > exists but there are protections to prevent all those updates happening > at > > > once. I'm not familiar with the code that handles the measure windows > or > > > what the limits are but consider that 1000 tweets per day is approx 42 > per > > > hour. > > > > > Matt > > > > > On Thu, Jul 29, 2010 at 8:59 AM, Eric Mortensen <emort...@gmail.com > >wrote: > > > > >> For instance, set up the my database to create 200 tweets to post to a > > >> account. It ran at 11:49 AM EST. I noticed that 127 tweets were > posted and > > >> the remaining got kicked with the error response. Not sure if there is > a > > >> limit of 127 I thought it was 150 limit per hour. This also does not > hit > > >> the 1000 daily limit since it was only 200 tweets. I will try this > again in > > >> about 1 hour. I should be able to start tweeting again. Let me know > what > > >> you think? > > > > >> On Wed, Jul 28, 2010 at 12:19 PM, Eric Mortensen <emort...@gmail.com > >wrote: > > > > >>> But, It appears did not hit a 1000 update limit since after an hour > and > > >>> can start updates again. That why it appears to be an hourly limit. > Not to > > >>> mention when this started I did not even have a 1000 tweets total on > the > > >>> account. That is why it can't be the 1000 a day limit. There is > should be > > >>> another reason for this. > > > > >>> On Tue, Jul 27, 2010 at 6:56 PM, Matt Harris < > thematthar...@twitter.com>wrote: > > > > >>>> Hey Eric, > > > > >>>> That error is the Twitter Limits kicking in saying there are too > many > > >>>> status updates being posted by the account. This isn't an API rate > limit but > > >>>> a natural limit which applies to all of Twitter. A user may not > Twitter more > > >>>> than 1000 updates a day (this includes retweets). > > > > >>>> More information on these limits are explained on the page I linked > to > > >>>> before: http://support.twitter.com/forums/10711/entries/15364 > > > > >>>> Hope that clarifies the what is happening. > > >>>> Matt > > > > >>>> On Tue, Jul 27, 2010 at 12:27 PM, Eric Mortensen < > emort...@gmail.com>wrote: > > > > >>>>> Here is a response: > > >>>>> <?xml version="1.0" encoding="UTF-8"?> > > >>>>> <hash> > > >>>>> <error>User is over daily status update limit.</error> > > >>>>> <request>/1/statuses/update.xml</request> > > >>>>> </hash> > > > > >>>>> On Thu, Jul 15, 2010 at 5:41 PM, Matt Harris < > > >>>>> thematthar...@twitter.com> wrote: > > > > >>>>>> Hey Eric, > > > > >>>>>> Sorry that help article didn't answer your question. Can you > provide > > >>>>>> the actual HTTP request being made and the HTTP response you get > back? We're > > >>>>>> interested in the response body content in particular. > > > > >>>>>> Also, remember we disable basic authentication on August 16th so > you > > >>>>>> want to switch to that method of authentication now. > > > > >>>>>> Matt > > > > >>>>>> On Thu, Jul 15, 2010 at 12:46 PM, Eric Mortensen < > emort...@gmail.com>wrote: > > > > >>>>>>> Unfortunately not. Do you have anything else that might explain > it? > > > > >>>>>>> On Thu, Jul 15, 2010 at 1:48 PM, Matt Harris < > > >>>>>>> thematthar...@twitter.com> wrote: > > > > >>>>>>>> Hi Eric, > > > > >>>>>>>> In addition to the API Rate Limits there are general usage > limits > > >>>>>>>> which apply to all of Twitter, including the website. These > limits restrict > > >>>>>>>> various actions including the number of updates that can be > posted per day. > > > > >>>>>>>> You can read more about Twitter Limits on our help website: > > >>>>>>>>http://support.twitter.com/forums/10711/entries/15364 > > > > >>>>>>>> Hope that answers your question, > > >>>>>>>> Matt > > > > >>>>>>>> On Thu, Jul 15, 2010 at 10:11 AM, Eric <emort...@gmail.com> > wrote: > > > > >>>>>>>>> It appears that I am hitting a 150 post rate limit when I use > the > > >>>>>>>>> statuses/update.xml api to update a twitter account eventhough > I > > >>>>>>>>> should not have this limit doing only a post. Is there a reason > > >>>>>>>>> why? > > >>>>>>>>> Here is the code I am using from oracle to do this: > > > > >>>>>>>>> create or replace PACKAGE BODY tweet > > >>>>>>>>> AS > > > > >>>>>>>>> twit_host VARCHAR2(255) := 'api.twitter.com'; > > >>>>>>>>> twit_protocol VARCHAR2(10) := 'http://'; > > > > >>>>>>>>> -- URL for status updates > > >>>>>>>>> tweet_url VARCHAR2(255) := '/1/statuses/update.xml'; > > > > >>>>>>>>> FUNCTION tweet > > >>>>>>>>> ( > > >>>>>>>>> p_user IN VARCHAR2, > > >>>>>>>>> p_pwd IN VARCHAR2, > > >>>>>>>>> p_string IN VARCHAR2, > > >>>>>>>>> p_proxy_url IN VARCHAR2 DEFAULT NULL, > > >>>>>>>>> p_no_domains IN VARCHAR2 DEFAULT NULL ) > > >>>>>>>>> RETURN BOOLEAN > > >>>>>>>>> AS > > >>>>>>>>> v_req UTL_HTTP.REQ; -- HTTP request ID > > >>>>>>>>> v_resp UTL_HTTP.RESP; -- HTTP response ID > > >>>>>>>>> v_value VARCHAR2(1024); -- HTTP response data > > >>>>>>>>> v_status VARCHAR2(160); -- Status of the request > > >>>>>>>>> v_call VARCHAR2(2000); -- The request URL > > >>>>>>>>> v_log_value varchar2(4000) := 'status'; > > >>>>>>>>> BEGIN > > > > >>>>>>>>> -- Twitter update url > > >>>>>>>>> v_call := twit_protocol || > > >>>>>>>>> twit_host || > > >>>>>>>>> tweet_url; > > > > >>>>>>>>> -- encoded status string > > >>>>>>>>> v_status := utl_url.escape( > > >>>>>>>>> url => 'status=' || SUBSTR( > short_url.encode_text(p_string) , > > >>>>>>>>> 1,140)); > > > > >>>>>>>>> -- Authenticate via proxy > > >>>>>>>>> -- Proxy string looks like ' > http://username:passw...@proxy.com' > > >>>>>>>>> -- p_no_domains is a list of domains not to use the proxy > for > > >>>>>>>>> -- These settings override the defaults that are configured > at > > >>>>>>>>> the > > >>>>>>>>> database level > > >>>>>>>>> IF p_proxy_url IS NOT NULL > > >>>>>>>>> THEN > > >>>>>>>>> Utl_Http.set_proxy ( > > >>>>>>>>> proxy => p_proxy_url, > > >>>>>>>>> no_proxy_domains => p_no_domains > > >>>>>>>>> ); > > >>>>>>>>> END IF; > > > > >>>>>>>>> -- Has to be a POST for status update > > >>>>>>>>> v_req := UTL_HTTP.BEGIN_REQUEST( > > >>>>>>>>> url => v_call, > > >>>>>>>>> method =>'POST'); > > > > >>>>>>>>> -- Pretend we're a moz browser > > >>>>>>>>> UTL_HTTP.SET_HEADER( > > >>>>>>>>> r => v_req, > > >>>>>>>>> name => 'User-Agent', > > >>>>>>>>> value => 'Mozilla/4.0'); > > > > >>>>>>>>> -- Pretend we're coming from an html form > > >>>>>>>>> UTL_HTTP.SET_HEADER( > > >>>>>>>>> r => v_req, > > >>>>>>>>> name => 'Content-Type', > > >>>>>>>>> value => 'application/x-www-form-urlencoded'); > > > > >>>>>>>>> -- Set the length of the input > > >>>>>>>>> UTL_HTTP.SET_HEADER( > > >>>>>>>>> r => v_req, > > >>>>>>>>> name => 'Content-Length', > > >>>>>>>>> value => length(v_status)); > > > > >>>>>>>>> -- authenticate with twitter user/pass > > >>>>>>>>> UTL_HTTP.SET_AUTHENTICATION( > > >>>>>>>>> r => v_req, > > >>>>>>>>> username => p_user, > > >>>>>>>>> password => p_pwd ); > > > > >>>>>>>>> -- Send the update > > >>>>>>>>> UTL_HTTP.WRITE_TEXT( > > >>>>>>>>> r => v_req, > > >>>>>>>>> data => v_status ); > > > > >>>>>>>>> UTL_HTTP.end_request (v_req); > > > > >>>>>>>>> RETURN TRUE; > > > > >>>>>>>>> EXCEPTION > > >>>>>>>>> -- normal exception when reading the response > > >>>>>>>>> WHEN UTL_HTTP.END_OF_BODY THEN > > >>>>>>>>> UTL_HTTP.end_request (v_req); > > >>>>>>>>> RETURN TRUE; > > > > >>>>>>>>> -- Anything else and send false > > >>>>>>>>> WHEN OTHERS THEN > > >>>>>>>>> UTL_HTTP.end_request (v_req); > > >>>>>>>>> Dbms_Output.Put_Line ( 'Request_Failed: ' || > > >>>>>>>>> Utl_Http.Get_Detailed_Sqlerrm ); > > >>>>>>>>> Dbms_Output.Put_Line ( 'Ora: ' || Sqlerrm ); > > >>>>>>>>> RETURN FALSE; > > > > >>>>>>>>> END; > > > > >>>>>>>>> END tweet; > > > > >>>>>>>>> Thanks > > > > >>>>>>>> -- > > > > >>>>>>>> Matt Harris > > >>>>>>>> Developer Advocate, Twitter > > >>>>>>>>http://twitter.com/themattharris > > > > >>>>>> -- > > > > >>>>>> Matt Harris > > >>>>>> Developer Advocate, Twitter > > >>>>>>http://twitter.com/themattharris > > > > >>>> -- > > > > >>>> Matt Harris > > >>>> Developer Advocate, Twitter > > >>>>http://twitter.com/themattharris > > > > > -- > > > > > Matt Harris > > > Developer Advocate, Twitter > > >http://twitter.com/themattharris >