We informed client with the below:
When a limit is reached, the Eikon data API returns an HTTP response with status code 429 and the message “Too many requests, please try again later.”
Subsequently, the Python library raises an exception that contains the message error code 429 | for the same error message.
Here are the related limits and their values:
Limit | Value | Description |
---|
Requests based throttling (RBT) | 5 requests per second | The number of requests sent to the platform via the Eikon data API cannot exceed this limit. This number of requests is counted globally for all client applications connected to the same Refinitiv Eikon instance.
If 4 applications are connected to the same Eikon, the throttling mechanism will consider a global rate of 4 requests per second when each application sends 1 request per second. |
Volume based throttling (VBT) | 50 MB per minute | The volume (size) of data retrieved from the platform via the Eikon data API cannot exceed this limit. This volume of data is counted globally for all client applications connected to the same Eikon instance. |
Daily request based throttling (DRBT) | 10,000 requests per day | The number of requests sent to the platform per day via the Eikon data API cannot exceed this limit. This number of requests is counted globally for all client applications connected to the same Refinitiv Eikon instance. |
Daily volume based throttling (DVBT) | 5 GB per day | The volume (size) of data retrieved from the platform per day cannot exceed this limit. This volume of data is counted globally for all client applications connected to the same Eikon instance. |
Users and not supported/ allowed to make more than 1 request per second on images (with busts of 20). If the user feels like it should be otherwise, it shall become a functional requirement.
Kindly note that the library used in the desktop session is not designed for high-volume data requests. If a large amount of data is requested, the operation may time out. The current timeout threshold is approximately 300 seconds.
For more details, please refer to the documentation below:
https://developers.lseg.com/en/api-catalog/eikon/eikon-data-api/documentation
====================
Client mentioned that he has 1.4 million requests of API to do per month, and it's just simply impossible with those limitations.
And then client came back today saying he is getting error 429 using the API, which means he has reached his daily limits.
As per client, he runs 25 API requests per stock, and run 130 stocks, which equates to around 3,300 requests today. As he have 10,000 per day, he is asking why is he getting more and more limited every day?
==================
Please see client's verbatim below:
I adapted my software for exactly this issue, removing the try to get the option chains with every single strike price and cold put options available for every stock, resulting around 350 API requests to now being on the 25 requests.
I have adapted my system, and therefore I'm only aiming to get data worth of 301 stocks per day because I have also scaled down my stock universe to 1,200, meaning that in four days my entire base would basically be updated, and for the entirety of the month, I wouldn't need to get any of the data anymore.
However it stopped functioning at the 130th stock, which is a bit bizarre, assuming that I calculated everything properly. Of course, I could have made a mistake. I will attach two files: one contains the code requesting all of the APIs, and the other initiates the first file.
Index2.py is a file that contains the details for the indicators that I want enabled and disabled and forces the second file to run. The file fetchEquityIndicators.py is actually the file that is doing the request, so you can see the amount of requests each indicator does. Of course, keep in mind that I have disabled the ones linked with options, therefore reducing the requests massively.
You can also see the images attached showing that I did test the amount of API calls per stock which was 25 and all the associated errors that I got in the moment.
Please let me know if there is anything I can help you with as I am open and would love to provide as much information as possible to get this resolved as smoothly and quickly as possible.
Please advise.
See the attached pdfs for the scripts being used by the client.