I am rebuilding a research dataset at Copenhagen Business School — a panel of securities held by Danish households, 2000–2024, about 114,500 instruments — and I need each instrument’s identifier history: former ISINs with the dates they were valid.
I use a desktop session through LSEG Workspace with the lseg-data Python library. The Discovery Symbology lookup works well for European instruments. For US instruments the same call returns an entitlement error on the identifier itself. I have registered a fresh app key with both “Eikon Data API” and “EDP API” enabled, in case this was a platform-session difference, and re-tested this morning: 5 of 5 US RICs are still refused. The behaviour is unchanged.
POST /discovery/symbology/v1/lookup
{"from": [{"identifierTypes": ["RIC"], "values": ["AAPL.O"]}],
"to": [{"identifierTypes": ["ISIN"]}],
"type": "auto", "showHistory": true}
returns HTTP 200, and inside it:
{"input": [{"value": "AAPL.O", "identifierType": "RIC"}],
"output": [],
"errors": ["User is not entitled to receive the ISIN identifier back"],
"errorCodes": ["USER_NOT_ENTITLED_FOR_IDENTIFIER"]}
What puzzles me is that the same account returns the same identifiers freely on other paths. A get_data call for the same instrument returns ISIN, CUSIP and SEDOL with no error (AAPL.O → US0378331005 / 037833100 / 2046251), and a Discovery Search on SymbolHistoryScope returns IssueISIN = US0378331005. The data is plainly available to me; it is specifically this endpoint that declines to hand ISIN back.
Observations that may help you locate it:
• The same endpoint returns ISINs fine for European instruments — a Danish instrument returned 909 of 909 items with ISIN output and no errors. US instruments returned 600 of 608 items refused.
• It is not only ISIN. CUSIP and SEDOL as output types on this endpoint return no values for any instrument I have tried — 0 of 20 US, 0 of 20 UK, 0 of 20 Danish — while get_data returns both for those same instruments.
• RIC as an output identifier works everywhere, including for US instruments.
What it costs, measured rather than estimated. Because the batched lookup is refused, every affected instrument falls back to a one-call-per-instrument Discovery Search. On a measured batch of 380 instruments that is 233 of 289 requests — 81% of the total. Across the full panel it is about 85,500 requests and nine days at the 10,000/day allowance, against roughly 17,000 requests and two days if the lookup could return ISIN. So the entitlement is worth about seven of those nine days — and the same penalty recurs for my price history and for every future re-harvest of this panel, not just once. I pace calls at roughly one every three seconds and stay under 9,000 a day.