question

Upvotes
Accepted
22 1 0 4

Fragility of the API? in get_data raise RDError(-1, except_msg)

Working with Refinitiv Data Python library I have some bond titles for which I pull the Ultimate Parent Id in order to further query some data:

>>> import refinitiv.data as 
>>> import pandas as pd

...

>>> ParentIDs   
        Instrument Ultimate Parent Id
0     US013822AC54         5051045063
1     US013822AE11         5051045063
2     US013822AG68         5051045063
3     US013822AH42         5051045063
4     XS2342910689         5057937159
...            ...                ...
3238  US98955DAA81         5053129374
3239  XS2431015655         5053129374
3240  US98980BAA17         5043459833
3241  US98981BAA08         5041798671
3242  US98980HAA86         4295893641

[3243 rows x 2 columns]


>>> ParentIDs['Ultimate Parent Id'].unique().dropna()
<StringArray>
['5051045063', '5057937159', '4295903254', '4295901827', '5083796424',
 '4298089043', '5038907093', '4295906590', '5000065666', '4295900267',
 ...
 '5069399010', '4295908523', '5042953645', '5067514871', '4296579444',
 '5082038238', '5053129374', '5043459833', '5041798671', '4295893641']
Length: 1431, dtype: string


However, if I pull the Primary Quote, I get the following error:

>>> RICs = rd.get_data(
...   universe = ParentIDs['Ultimate Parent Id'].unique().dropna(),
...   fields = ["TR.PrimaryQuote"]
...   )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\...\AppData\Roaming\Python\Python311\site-packages\refinitiv\data\_access_layer\get_data_func.py", line 126, in get_data
    raise RDError(-1, except_msg)
refinitiv.data._errors.RDError: Error code -1 | Backend error. 400 Bad Request Requested universes: ['5051045063', '5057937159', '4295903254', 
'4295901827', '5083796424', '4298089043', '5038907093', '4295906590', '5000065666', '4295900267', '5082539928', '5063764430', '4295863289', ...


At a second attempt it worked.

  1. What does this error message mean?
  2. Is the API "fragile"? It also takes sometimes a very long time just to get some data (e.g. "Ultimate Parent Id")
#productpython apirefinitiv-data-libraries
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.

1 Answer

· Write an Answer
Upvote
Accepted
10.8k 21 6 9

@fabian.echterling Thanks for your question - so during busier periods of high load - occasionally some requests are dropped - the only real solution is to code defensively in a try-except structure and re-present the call - perhaps after a small sleep. I will contact the service team and see if there are any specific issues and report back. Could you also provide a full universe list to see if I can replicate or if there is some issue with the identifiers.

The API Limits for get_data are 10,000 datapoints per API call - so you are well within that. I hope this can help.

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.

Thank you! That already explains it for me. Would be great if the Refinitiv infrastructure will be strong enough in the future to built reliable workflows.

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.