Error 429: Too many requests. I used the command eikon.get_data('PLF4', fields = "EXPIR_DATE").

As shown in the title, I received the error of too many requests. I was guessing the RIC name was wrong, since PLF24 could be found in the searching bar. However, PLF4 also showed up but the page content was empty. Can anyone tell me which RIC name should be the correct? What is the pattern of the commodity future RIC in Refinitiv Eikon? If you look back the historical RIC, PLF8^1 was still used the old pattern.

The code is eikon.get_data('PLF4', fields = "EXPIR_DATE"). I think this the reason why I received the error. More importantly, how can I refresh my access to the database, since it seems I was declined by the system for retrieving data.

Best Answer

  • @xm

    Thank you for reaching out to us.

    According to the Eikon Data API Usage and Limits Guideline, for Call-based and Daily limits, when the limit is reached, the Eikon platform returns an HTTP response with status code 429 and the message "Too many requests, please try again later.". Then, the Python library raises an EikonError exception with the following message:

    1694663924445.png

    Typically, the limit will be reset at midnight.

    For question regarding PLF4, please kindly contact the content support team directly via MyRefinitiv. The support team will provide you with valid RICs which can be used to retrieve the required data.

    I checked and found that PLF4 is not a valid RIC. Please contact the content support team to confirm this.

Answers

  • Thx for the response! Can I know what is really happening if the system receives the wrong command as I said "PLF4"? Does system keep finding the data under PLF4 or only once? It looks like the system is repeatedly working on this without stop and then the problem is caused.
  • @xm

    It is one request.

    The err shows "The record could not be found".

    1694678896948.png

  • Thx, Jirapongse. Then, it means for the function ek.get_data('PLF4', ....), although the input was wrong, the system only returned once and then stopped. Thus, does it mean our code keep sending commands to the system to retrieve the wrong data? If so, I will go back to my code and try to find the place where the repeated requests happened.
  • @xm

    Yes, you are correct. the ek.get_data sends a request and get a response.

    2023-09-14 17:16:17,485 P[141104] [MainThread 89320] HTTP Response code: 200
    2023-09-14 17:16:17,486 P[141104] [MainThread 89320] HTTP Response: {"responses":[{"columnHeadersCount":1,"data":[["PLF4",null]],"error":[{"code":251658243,"col":1,"message":"'The record could not be found' for the instrument 'PLF4'","row":0}],"headerOrientation":"horizontal","headers":[[{"displayName":"Instrument"},{"displayName":"EXPIR_DATE","field":"EXPIR_DATE"}]],"rowHeadersCount":1,"totalColumnsCount":2,"totalRowsCount":2}]}

    The application may exceed the API limits. For example:

    • Requests per day - The number of requests sent to the platform per day via the Eikon Data APIs cannot exceed this limit. This number of requests is counted across all client applications connected to the same Eikon instance.The current limit values (10-Oct-2019) are 10,000 requests per day and 5 requests per second.