question

Upvotes
Accepted
24 8 7 11

ek.get_timeseries response 429

Hi, it appears that the eikon python api has entered the next stage of pre-release today, where the App Key from beta program stops working. I generated a new App Key and found out the limit is different than the beta stage. In beta, "the request is limited to 300 rics per request. Intraday is limited to 3000 points, and interday is limited to 50,000 points" and my current code worked fine. However the same code returns <response 429> today. I wonder what is the current limit for ek.get_timeseries?

*edit*

For example,

for i in range(10):
    print i
    ek.get_timeseries( rics=['Z.O', 'MAR.O', 'QRTEA.O', 'RDC', 'GPK', 'CME.O', 'CBL', 'PBCT.O', 'BWA', 'PUMP.K', 'ROK', 'YUM', 'LYB', 'ANDV.K', 'HL'], interval='tick',\
                                     start_date=dt.datetime(2018,7,5,19,55,1),\
                                     end_date=dt.datetime(2018,7,5,20,0,0)+dt.timedelta(seconds=1,microseconds=-1),\
                                     normalize=True )
    time.sleep(0.5)

would give error

0
1
2
3
4
5
6
7
8
Traceback (most recent call last):

File "<ipython-input-90-4789682e1657>", line 3, in <module> ek.get_timeseries( rics=['Z.O', 'MAR.O', 'QRTEA.O', 'RDC', 'GPK', 'CME.O', 'CBL', 'PBCT.O', 'BWA', 'PUMP.K', 'ROK', 'YUM', 'LYB', 'ANDV.K', 'HL'], interval='tick', start_date=dt.datetime(2018,7,5,19,55,1), end_date=dt.datetime(2018,7,5,20,0,0)+dt.timedelta(seconds=1,microseconds=-1), normalize=True )

File "C:\Users\renee\AppData\Local\Continuum\anaconda2\lib\site-packages\eikon\time_series.py", line 160, in get_timeseries ts_result = eikon.json_requests.send_json_request(TimeSeries_UDF_endpoint, payload, debug=debug)

HTTPError: <Response [429]>

time.sleep(0.5) ensures the request per second is less than 5, but it still hit <response 429>.

Are there other restrictions?(The above code worked fine during Beta)

My App ID is 'abd1d28534c74b698b4d3f07563c2ffef11c35fb'

eikoneikon-data-apipythonworkspacerefinitiv-dataplatform-eikonworkspace-data-apierror429
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
39.4k 78 11 27

@renee.yao
Thank you for posting the sample.
To protect the backend infrastructure from abuse and to prevent the use of Eikon as a datafeed, in addition to request based throttle limiting the number of requests to the max of 5 per second we recently introduced daily request based limits and daily and 60 second interval volume based limits. The limit you’re hitting sets the max amount of data in megabytes you can retrieve within rolling 60 seconds interval. The error message you saw is returned when your requests exceed the volume quota allowed within 60 seconds. If you repeat the request shortly after (when the volume of data retrieved in the last 60 seconds goes below the threshold) the same request will return the data. In other words when you experience this error you need to slow down the retrieval to allow the volume based quota to be replenished. We’re currently working on providing better feedback to applications when they hit the limit (e.g. by telling the application how long it needs to wait before submitting further requests) and on introducing the queue for the requests that hit the throttle. Please note again that any existing and future limits imposed on data retrieval from Eikon platform are subject to change.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
39.4k 78 11 27

HTTP status 429 indicates too many requests sent in certain time interval. Eikon platform enforces numerous limits and more may be introduced in the future. E.g. there's a throttle that limits the number of requests sent to 5 per second, but this throttle has been in effect all along through the Beta program. To see what limit you're hitting, would you mind posting the full text of the response with HTTP status 429 you receive?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Just updated the question with an example.

Hi Alex-- I'm seeing this as well. Just got our 403 forbidden on the beta ID today. I registered a new app ID, but now just a few requests are triggering the limits, and even a 10 second wait is insufficient to get rid of 429. It's acting more like a 3 requests in a minute limit.

The error message is below:

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

After updating 0.1.12->0.1.13 I also get several messages like this:

ERROR:pyeikon:HTTP Response: cannot decode error message

But the 429 behavior is unchanged.

Hello @Alex Putkov. , @davidk

Please find the following response submitted to us offline:

"

The full text of the message is unfortunately not very helpful:

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

Also, I tried updating the eikon package via pip from 0.1.12->0.1.13; after the upgrade I additionally get several messages like:

ERROR:pyeikon:HTTP Response: cannot decode error message

But the 429 messages are unchanged.

"

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.