I am looking for a method to retrieve all underwriters of a specific bond using a python API.
Within the Refinitiv Workspace, you can open a bond and retrieve a set of multiple underwriters, as exampel
Following the article Debt Structure Analysis on an Organizational Level, I constructed the following Python code:
import refinitiv.data as rd
from refinitiv.data.content import search
# opens session with refinitiv-data.config.json
rd.open_session()
organization = "4295885383" # YARA International ASA
# Fields
fields = [
# basic bond data
"PermID",
"ISIN",
"IssueDate",
"Currency",
"FaceIssuedTotal",
# underwriter fields
"UnderwriterCode",
"UnderwriterID",
"UnderwriterName",
"UnderwriterSetupDate",
"UnderwriterAmount",
]
df = search.Definition(
view=search.Views.GOV_CORP_INSTRUMENTS,
filter=f"ParentOAPermID eq '{organization}' and IsActive eq true",
select=",".join(fields),
).get_data()
data = df.data.df
print(data)
The result is per obligation the underwriter, as such:
However, you can see that for obligation permID NO0010727993, there is only 1 underwriter, but in the Workspace you see 3 underwriters.
Another way to search for this field is using the data Item Browser. Searching for the permID you see the fields can be called: "TR.Underwriter", "TR.UnderwriterCode", "TR.UnderwriterRankDescription", "TR.UnderwriterAmount", "TR.FIUseOfProceedsAmount".
However, these fields are not known in the search engine. I retrieve the error: "Error code 221 | The access to field(s) denied".
Alternative, I can use the followings calls: "fundamental_and_reference.Definition", "rd.get_history" and "rd.get_data". They all give errors and no data.
As such, My question is:
What Python API should I use, and how do I set this up, to retrieve ALL underwriters of a obligation.