>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

Reply via email to