Error code 429 | Client Error: Too Many Requests - Too many requests, please try again later

hi , when i use python to get some data from eikon, i got this error

Error code 429 | Client Error: Too Many Requests - Too many requests, please try again later

and this is my code:

import eikon as ek

ek.set_app_key('*********')

df = ek.get_timeseries("USCPI=ECI",start_date="2018-01-27",end_date="2019-01-27",interval='monthly')


how can i fix this problem,thx

Best Answer

Answers

  • hi , I can't fix the problem and it is important issue .

    1.On developer community, there are so many people have same problem, but they didn't have an answer too.

    2.I got some data through python api at 7 April .From then on, i can't get ant data by eikon api.

    how to fix this problem , thx

  • hi , I can't fix the problem and it is important issue .

    1.On developer community, there are so many people have same problem, but they didn't have an answer too.

    2.I got some data through python api at 7 April .From then on, i can't get ant data by eikon api.

    how to fix this problem , thx

  • @willywang
    Have you reviewed the document @chavalit.jintamalit pointed you to? This document describes the reasons why users may receive EikonError 429.
    It should also help you determine which specific throttle your code is triggering. If after reviewing the above doc you still cannot figure out which throttle your code is triggering and why, you can enable logging per instructions in this comment. The log will tell you which throttle limit your requests are breaching.
    It would also be very helpful if you provided specifics of your experience: what exactly you're doing and what results you get.

  • Hi @willywang,

    Let me add a real world experience to Chavalit's answer:

    I have some Python code with a loop on 100 items. Inside the loop there is a request (tr.get_news_story). Running my code gave me a 429. After adding a 50 millisecond pause in the loop the error disappeared.

    To add the pause I added this to my imports:

    import time

    And here is the loop:

    for i in enumerate(index):
    ...
    time.sleep(0.05)
    ...

    You might need to tweak the pause duration to ensure you do not hit the limit. For my code, 30 ms sometimes worked, but sometimes it failed, so I finally settled for 50 ms.

    Hope this helps.

    See also this thread and this thread.