question

Upvotes
Accepted
17 3 7 10

Eikon API Symbology does not produce results as expected

> get_symbology(list("LU0070214613"), from_symbol_type="ISIN", to_symbol_type="RIC",debug=TRUE)
[1] "Request *************************************"
{"Entity":{"E":["SymbologySearch"],"W":{"symbols":[["LU0070214613"]],"from":["ISIN"],"to":[["RIC"]],"bestMatchOnly":[true]}}} 
[1] "Response *************************************"
[1] "{\"mappedSymbols\":[{\"bestMatch\":{\"error\":\"No best match available\"},\"symbol\":\"LU0070214613\"}]}"
[1] "Response status *************************************"
[1] 200

I am using R to retrieve data. Symbology works very badly. It does not resolve many ISINs that are in the system. The example of code and json request and response are above.

This ISIN is recognized in the search field of Eikon terminal. It is also successfully resolved by Datastream XREF. I have a long list of ISINs. The best matching ability was from Bloomberg SECF call. Datastream XREF was able to recongnize not as many. The symbology call resolved a small fraction relative to Datastream (ca. 20%)

Is there another alternative to getting RICs based on ISINs?

EDIT: The ISIN gets resolved into "lipperID" (the type is not documented by the author of the package: it would be nice to have a full list of admissible values!). Then if I add "LP" to Lipper ID of 60003513, as it is how RICs are formed and try to get its ISIN it does get correctly resolve to the ISIN I started with. So the information is in the system, but it does not get retrieved correctly.

> get_symbology(list("LP60003513"), from_symbol_type="RIC", to_symbol_type="ISIN",debug=TRUE)
[1] "Request *************************************"
{"Entity":{"E":["SymbologySearch"],"W":{"symbols":[["LP60003513"]],"from":["RIC"],"to":[["ISIN"]],"bestMatchOnly":[true]}}} 
[1] "Response *************************************"
[1] "{\"mappedSymbols\":[{\"bestMatch\":{\"ISIN\":\"LU0070214613\"},\"symbol\":\"LP60003513\"}]}"
[1] "Response status *************************************"
[1] 200
      Symbol         ISIN
1 LP60003513 LU0070214613

Any recommendation for the recommended list of output ID types (I have stocks, warrants, bonds and mutual funds, maybe more, in my list, so I need something very flexible to retrieve price information on the securities in my other dataset)? All advice is greatly appreciated.

I also the this "bestMatchOnly" option in the JSON call. Any chance to get more than one match then? It is not documented in the R package and not something mentioned in the Python webinar.

eikoneikon-data-apipythonworkspacerefinitiv-dataplatform-eikonworkspace-data-apiapisymbologyr
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.

Upvote
Accepted
17 3 7 10

@

jirapongse.phuriphanvichai

The advice was useful, but in the wrong language. For the fellow R users:
send_json_request("SymbologySearch",list(symbols= list('LU0070214613','LU0063383300','NO0003002503','NO0008002227'),from='ISIN',to=list('RIC'),   bestMatchOnly=FALSE),debug=F)

Note, that instead of just RIC one can have a list of any available ids. (As mentioned in another thread, DS Mnemonics are not supported.)

For deparsing, I would recommend RJSONIO, but there are surely many other options in R.

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
86.2k 292 53 78

"LU0070214613" can be mapped to multiple RICs so the result of RIC mapping doesn't appear in bestMatch.

{
  "mappedSymbols": [
    {
      "ISINs": [
        "LU0070214613"
      ],
      "LipperIDs": [
        "60003513"
      ],
      "RICs": [
        "LP60003513",
        "987583X.F",
        "987583X.H",
        "987583X.D",
        "987583X.MU",
        "987583X.SG",
        "987583X.BE",
        "FL-JASEA.OL",
        "JFUSEAJPY.HE",
        "909999.FBF",
        "987583X.TG",
        "007021461X.LU^A11",
        "575692.S^G10",
        "LU0070214613.LUF",
        "987583X.DX",
        "LU0070214613.LUF^H00",
        "JD55ff.FP^K10",
        "LU0070214613.VI^J13"
      ],
      "SEDOLs": [
        "5408364",
        "B1KKLY7"
      ],
      "bestMatch": {
        "ISIN": "LU0070214613",
        "lipperID": "60003513"
      },
      "symbol": "LU0070214613",
      "tickers": [
        "IH5Z",
        "FL-JASEA",
        "JFUSEAJPY",
        "909999"
      ]
    }
  ]
}

The bestMatch contains the result of mapping to "ISIN" and "lipperID" which is one-to-one mapping.

By default, bestMatchOnly is set to true in get_symbology function. You can override it by directly using send_json_request function.

import eikon as ek
ek.set_app_id('appid')
payload ={'symbols': ['LU0070214613'],'from': 'ISIN','to': ['RIC'],'bestMatchOnly': False}
df = ek.send_json_request("SymbologySearch", payload, debug=True)
print(df)

The result is:

{  
   "mappedSymbols":[  
      {  
         "RICs":[  
            "LP60003513",
            "987583X.F",
            "987583X.H",
            "987583X.D",
            "987583X.MU",
            "987583X.SG",
            "987583X.BE",
            "FL-JASEA.OL",
            "JFUSEAJPY.HE",
            "909999.FBF",
            "987583X.TG",
            "007021461X.LU^A11",
            "575692.S^G10",
            "LU0070214613.LUF",
            "987583X.DX",
            "LU0070214613.LUF^H00",
            "JD55ff.FP^K10",
            "LU0070214613.VI^J13"
         ],
         "bestMatch":{  
            "error":"No best match available"
         },
         "symbol":"LU0070214613"
      }
   ]
}

However, you can limit the number of mapped items by using limit parameter.

payload ={'symbols': ['LU0070214613'],'from': 'ISIN','to': ['RIC'],'bestMatchOnly': False, 'limit': 1}
df = ek.send_json_request("SymbologySearch", payload, debug=True)
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.

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.