When you receive a 429 - Too Many Requests, here is what you should do

  • 1
  • Article
  • Updated 1 year ago
  • (Edited)
{
"errorCode": "CMN-301", "message": "Request rate exceeded", "errors": [ { "errorCode": "CMN-301", "message": "Request rate exceeded" } ] }
Response code : 429????


                                     

Solution:

Check the usage plan under Applications Information section for your application. 

While you hit 429 error, your application will stay in penalty interval for 60 seconds. During this time, donot make any calls. 

You can avoid hitting 429 error by following usage plan RPM( Requests per Minute) data for APIs. 
Photo of VB

VB, Official Rep

  • 1,470 Points 1k badge 2x thumb
  • meh

Posted 3 years ago

  • 1
Photo of TT

TT, Alum

  • 412 Points 250 badge 2x thumb
In order to see your usage plan go to MY ACCOUNT and click on the Application.  There you will see a link in the description section named Usage Plan
Photo of Matt Spinks

Matt Spinks

  • 532 Points 500 badge 2x thumb
I would like to understand this more fully, as we started getting the 429 error after optimizing our database (our app is running faster now). Does this happen on a user-account basis? Or is it on an application basis? We supply an app that is being used by several different users with different RingCentral accounts simultaneously. My main concern is - when performing requests for one particular user, if our app gets this error for that request, do we need to throttle other requests for the other, unrelated users at that time?
(Edited)
Photo of Jesse Hendon

Jesse Hendon

  • 424 Points 250 badge 2x thumb
You are going to need to move toward a centralized server architecture that does the RingCentralAPI Requests and then relays the cached data to client apps either via a DB or some type of connection if you hope to scale. If you have multiple client apps in the wild all pulling queries at random then you have zero control over how many requests total you are sending in a given time-frame. Furthermore, it is likely that your client apps are requesting the same exact data which is wasteful and a centralized cache would eliminate multiple identical queries. 

If I were you, I would use web-sockets to establish a link between a server app and the client apps and then use JSON as the mode of communication. You could have the server make a query, and then push that response to all connected Websockets.
(Edited)
Photo of AK

AK, Official Rep

  • 4,402 Points 4k badge 2x thumb
Rate Limit for an application is set per User ( RingCentral Extension ) per app.


So when you encounter an HTTP 429 error for a particular user ( RingCentral account ) it would not apply for the other User/Users/RingCentral accounts. 

For more information please take a look at our API reference under the title :

API Rate Limits