Chapter 4 – Equity Markets
This chapter explains how to find and interpret equity‑market data in LSEG products, focusing on search tools, RIC construction, indices, news, order‑book and trade‑history views, and key fields for spreadsheets.
In this chapter, the Python examples use the LSEG Data Library for Python, and the code below imports the library and opens a session to retrieve data.
import lseg.data as ld
ld.open_session()
Tools for Finding Data
Use the following LSEG Workspace tools to locate equity instruments, related displays, and historical data definitions.
LSEG Workspace – Global Search
-
Purpose: Single search box at the top of Workspace for finding securities, issuers, news, research, and apps.
-
How to open: Enter names, tickers, RICs, ISINs, or keywords in the search box and click Enter or Shift + Enter.

LSEG Workspace – Advanced Search
-
Purpose: Lets you build more precise queries with filters such as asset class, region, currency, sector, date range, and more.
-
How to open: Enter the Advanced Search (AS) in the LSEG Workpsace - Global Search to open the Advanced Search application.

LSEG Workspace - Screener
-
Purpose: A dedicated tool for idea generation and filtering across large universes (e.g., equities, bonds, funds) by using a variety of criteria.
-
How to open: Enter the Screener in the LSEG Workpsace - Global Search to open the Screener application.

LSEG Developer Community - RIC Search Tool
-
Purpose: A web-based tool on the LSEG Developer Community website that lets you search RICs by criteria such as asset class, country, or exchange.
-
How to open: Go to the LSEG Developer Community website and select RIC Search from the Developer Tools menu.

LSEG Data Library for Python - Screener
-
Purpose: Use the Screener object in the LSEG Data Library for Python to programmatically filter large universes of instruments (e.g., equities) by criteria such as fundamentals, prices, and classifications, and return the matching results for further analysis.
-
How to use: Run the Screener object with a Screener formula to retreive the list of matching RICs. For example, the following Python code screens for public companies on the London Stock Exchange with a market capitalisation of at least 30,000,000,000 USD.
from lseg.data.discovery import Screener
results = Screener('U(IN(Equity(active,public,primary))/*UNV:Public*/), IN(TR.ExchangeMarketIdCode,"XLON"), TR.CompanyMarketCap>=30000000000, CURN=USD')
list(results)
['BATS.L',
'HSBA.L',
'STAN.L',
'IMB.L',
'SSE.L',
'RKT.L',
'CPG.L',
'DGE.L',
'PRU.L',
'NWG.L',
'TSCO.L',
'AAL.L',
'CCL.L',
'IWDA.L',
'BAES.L',
'GSK.L',
'REL.L',
'RIO.L',
'ULVR.L',
'NG.L',
'FRES.L',
'EIMI.L',
'LSEG.L',
'BP.L',
'VOD.L',
'SHEL.L',
'GLEN.L',
'ANTO.L',
'III.L',
'BARC.L',
'EXPN.L',
'RR.L',
'LLOY.L',
'HLN.L',
'AZN.L']
LSEG Data Library for Python - Search APIs
-
Purpose: The search family of APIs in the LSEG Data Library for Python provides users powerful free‑text and filtered search, and lookup services over a very large universe of financial instruments, organisations, people, and assets.
-
How to use: Call the ld.discovery.search method with a query or filter parameter to return items that match your specified criteria. For example, the following code searches for active items in the Equity Quotes view that are listed on the London Stock Exchange and operate in the IT Services & Consulting industry.
ld.discovery.search(
view=ld.discovery.Views.EQUITY_QUOTES,
filter="AssetState eq 'AC' and ExchangeCode eq 'LSE' and RCSTRBC2012Leaf eq 'IT Services & Consulting (NEC)'"
)
| BusinessEntity | DocumentTitle | PermID | PI | RIC | |
|---|---|---|---|---|---|
| 0 | QUOTExEQUITY | Relx PLC, Ordinary Share, London Stock Exchange | 55836054478 | 7240429 | REL.L |
| 1 | QUOTExEQUITY | Softcat PLC, Ordinary Share, London Stock Exch... | 21548756968 | 168835138 | SCTS.L |
| 2 | QUOTExEQUITY | Computacenter PLC, Ordinary Share, London Stoc... | 55836049589 | 1082431 | CCC.L |
| 3 | QUOTExEQUITY | Kainos Group PLC, Ordinary Share, London Stock... | 21567179355 | 196601305 | KNOS.L |
| 4 | QUOTExEQUITY | NCC Group PLC, Ordinary Share, London Stock Ex... | 55836048462 | 17425259 | NCCG.L |
| 5 | QUOTExEQUITY | Cohort PLC, Ordinary Share, London Stock Exchange | 55851776382 | 25070372 | CHRT.L |
| 6 | QUOTExEQUITY | Seeing Machines Ltd, Ordinary Share, London St... | 55836052140 | 23487924 | M2Z.L |
| 7 | QUOTExEQUITY | FDM Group (Holdings) PLC, Ordinary Share, Lond... | 21542385314 | 159838303 | FDM.L |
| 8 | QUOTExEQUITY | Smarter Web Company PLC, Ordinary Share, Londo... | 236802455672 | 989898411 | SWC.L |
| 9 | QUOTExEQUITY | Fonix PLC, Ordinary Share, London Stock Exchange | 21774599032 | 466263346 | FNXF.L |
The following code can be used to retrieve all available fields in the EQUITY_QUOTES view.
from lseg.data.content import search
response = search.metadata.Definition(
view = search.Views.EQUITY_QUOTES
).get_data()
response.data.df
| Type | Searchable | Sortable | Navigable | Groupable | Exact | Symbol | ||
|---|---|---|---|---|---|---|---|---|
| AAACurrencyBondBenchmarkChain | AAACurrencyBondBenchmarkChain | String | False | False | False | False | False | False |
| AACurrencyBondBenchmarkChain | AACurrencyBondBenchmarkChain | String | False | False | False | False | False | False |
| ABSMBSBondsRIC | ABSMBSBondsRIC | String | False | False | False | False | False | False |
| ActiveEstimatesExist | ActiveEstimatesExist | Boolean | True | False | False | False | False | False |
| ActivityDate | ActivityDate | Date | True | True | True | False | False | False |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| WarrantType | WarrantType | String | True | False | False | False | False | False |
| WarrantTypeName | WarrantTypeName | String | True | False | False | False | False | False |
| Wert | Wert | String | True | False | False | True | False | True |
| YearHighToday2RIC | YearHighToday2RIC | String | False | False | False | False | False | False |
| YearLowToday2RIC | YearLowToday2RIC | String | False | False | False | False | False | False |
831 rows × 7 columns
Users can then choose the searchable fields and include them in the filter parameter to obtain the instruments they need.
LSEG Workspace – Data Item Browser
-
Purpose: Explore and look up individual data items (fields), including their definitions, codes, and availability across asset classes and views, so users can choose the right fields for screens, templates, and downstream applications.
-
How to open: In LSEG Workspace, use the global search bar to search for “Data Item Browser” (or “DIB”) and launch the Data Item Browser app.

The items found in the Data Item Browser can be used with the ld.get_data method in the LSEG Data Library for Python to retrieve data for those items. For exmample, the following code retrieves the company name, last trade price, and unscaled accumulated number of shares traded for LSEG.L.
ld.get_data(
universe = ['LSEG.L'],
fields = ['TR.CompanyName', 'TR.CLOSEPRICE', 'TR.ACCUMULATEDVOLUME']
)
| Instrument | Company Name | Close Price | Accumulated Volume | |
|---|---|---|---|---|
| 0 | LSEG.L | London Stock Exchange Group PLC | 7572 | 1459808 |
Equities Guide and Speed-Guides
Equities Guide
In LSEG Workspace, users can access Equities Guide information by typing EQG in the global search bar and pressing Enter.

Otherwise, users can still use the speed-guides page RICs to access the reference information.
Speed-Guides
Speed-guides are pre-defined reference pages that list important codes for real-time data, indices, news and more.
Key equity-related speed-guides
-
EQUITY– Master equity speed-guide with real-time data, news and economic-data codes. -
WORLD/INDICES1– All equity indices. -
WORLD/CHAR1,WORLD/CHAR2– Brokerage characters (used as extensions to equity RIC roots). -
WORLD/DELAY1– Exchanges offering delayed information and the corresponding delay lengths.
For speed-guides that begin with WORLD, you can usually jump directly to a specific country by replacing WORLD with its two-character country code.
Examples:
-
DE/INDICES1– All indices in Germany. -
IT/CHAR1– Brokerage characters for Italy.
In LSEG Workspace, users can enter a page RIC in the global search bar and press Enter to open the page and view its contents.

The same page data can also be retreived through LSEG Data Library for Python by using page RICs and the ROW80_1 to ROW80_25 fields.
df = ld.get_data(
universe=['EQUITY'],
fields=[f"ROW80_{i}" for i in range(1, 26)]
)
print(*df.iloc[0, 1:26], sep="\n")
EQUITIES - REFINITIV SPEED GUIDE EQUITY
welcome to the EQUITY guide. To access information double-click on the code in
< > or [ ]. For more guidance see <USER/HELP>.
=COUNTRY EQUITY GUIDES================= =NEWS & ANALYSIS GUIDES================
G20 Countries..............<G20/EQUITY> All News.........................<NEWS>
OECD Countries............<OECD/EQUITY> All Equity News..........<EQUITY/NEWS1>
Emerging Markets..........<EMG/EQUITY1>
European Equities..........<EUR/EQUITY> =RELATED GUIDES========================
Asian Countries..........<ASIA/EQUITY1> Reuters Stock Index Survey<EQUITYPOLL1>
Alpha Listing.................<STOCK>-Q Global Exchange Information.<EXCHANGES>
=KEY EQUITIES INFORMATION============== Delayed Data Information.<WORLD/DELAY1>
Global Short Sell.....<WORLD/SHORTSELL> Time & Sales Information...<WORLD/TAS1>
World Indices..........<WORLD/INDICES1> Brokerage Characters......<WORLD/CHAR1>
World Market Sectors....<WORLD/SECTOR1> Global Funds & Investments......<FUNDS>
World Market Stats.......<WORLD/STATS1> Equity Derivatives.......<EQUITY/DERIV>
Finding Company Share Prices.<DIR/USER> Global Mkt & Public Holidays.<HOLIDAY1>
DR/ADR Directory............<WEBSTER01> Close Run Times............<CLOSE/RUN1>
MIFID Exchange Data....<MIFID/EXCHANGE> Additional Background Data...<STOCK1>-7
Add/Drop/Changes........<WORLD/CHANGE1> Convertibles Guide.......<CONVERTIBLES>
=CHANGE NOTIFICATIONS & ALERTS========= Equity Linked Guide......<EQUITYLINKED>
Scheduled Change Notifications<CHANGES> Warrants Guide...............<WARRANTS>
Service Alerts..................<ALERT> Global ADRS......................<ADRS>
================================================================================
Main Guide<REFINITIV>Cross Market<CROSS/MKT1>Exchange Identifiers<EXCHID01>
Lost? Selective Access?..<USER/HELP> REFINITIV Phone Support.<PHONE/HELP>
Full Quotes for Equities
Most equity LSEG Instrument Codes (RICs) are based on a short alphabetic root derived from the company name, followed by an exchange identifier.
Structure
<RIC root>.<exchange identifier>
Examples
-
MSFT.O– Microsoft Corp (NASDAQ) -
ULVR.L– Unilever plc (London Stock Exchange) -
VOWG.DE– Volkswagen AG (Xetra)
The part before the dot is the RIC root (often the exchange’s own code for the instrument). The part after the dot is the exchange identifier.
- Full exchange-identifier lists:
EXCHID01toEXCHID22.
In many markets – especially in Asia – the RIC root is numeric because exchanges themselves use numeric codes.
Examples (numeric roots)
-
7267.T– Honda Motor Co. (Tokyo Stock Exchange) -
0941.HK– China Mobile (Hong Kong) Ltd. (Hong Kong Stock Exchange)
The following code uses LSEG Data Library for Python to subscribe to the
EXCHID01 to EXCHID22 page RICs and display the full exchange-identifer lists.
df = ld.get_data(
universe=[f"EXCHID{i:02d}" for i in range(2, 23)],
fields=[f"ROW80_{i}" for i in range(5, 23)]
)
import pandas as pd
entry = {}
exchanges = []
for i in range(0, 21):
for j in range(1, 19):
val = df.iloc[i, j]
if (isinstance(val, str) and (val.strip() == "" or set(val) == {"="})) or pd.isna(val):
continue
entry["EXCHID"] = val[0:9]
entry["MNEMONIC"] = val[9:18]
entry["EXCHANGE NAME"] = val[18:47]
entry["COUNTRY"] = val[47:66].split("<", 1)[0]
if entry["COUNTRY"][0].islower():
idx = None
for k in range(len(entry["EXCHANGE NAME"])-1, -1, -1):
if entry["EXCHANGE NAME"][k].isupper():
idx = k
break
if idx is not None:
entry["COUNTRY"] = entry["EXCHANGE NAME"][idx:] + entry["COUNTRY"]
entry["EXCHANGE NAME"] = entry["EXCHANGE NAME"][:idx]
exchanges.append(entry.copy())
entry = {}
exchanges_df = pd.DataFrame(exchanges)
exchanges_df
| EXCHID | MNEMONIC | EXCHANGE NAME | COUNTRY | |
|---|---|---|---|---|
| 0 | .A | AOE | NYSE American(Options) | United States |
| 1 | .A | ASE | NYSE American(Equities) | United States |
| 2 | BCC | Mercado a Término de Buenos | Argentina | |
| 3 | .AD | ABD | Abu Dhabi Securities Exch | UAE |
| 4 | .ALP | ALP | Alpha Trading Systems | Canada (Toronto) |
| ... | ... | ... | ... | ... |
| 369 | .ZA | ZAG | Zagreb SE | Croatia |
| 370 | .ZI | ZSE | Zimbabwe Stock Exchange | Zimbabwe |
| 371 | .ZY | LCY | BATS Y Trading For | |
| 372 | Nasdaq OMX Global Market | United States | ||
| 373 | .DXE | DXE | CBOE DXE Exchange | United Kingdom |
374 rows × 4 columns
Equities Search
Users can also use the Search API with the Equity Quotes view in LSEG Data Library for Python to search for equity instruments.
For example, the following code uses the Search API to search for the active primary ordinary share RICs in Italy that end with .MI.
ld.discovery.search(
view=ld.discovery.Views.EQUITY_QUOTES,
filter="RCSExchangeCountryLeaf eq 'Italy' and endswith(RIC, '.MI') and AssetState eq 'AC' and (RCSAssetCategoryLeaf xeq 'Ordinary Share' or RCSAssetCategoryLeaf xeq 'Preference Share') and IsPrimaryRIC eq true",
top=10)
| BusinessEntity | DocumentTitle | PermID | PI | RIC | |
|---|---|---|---|---|---|
| 0 | QUOTExEQUITY | Enel SpA, Ordinary Share, Milan Stock Exchange | 55837438050 | 1114308 | ENEI.MI |
| 1 | QUOTExEQUITY | UniCredit SpA, Ordinary Share, Milan Stock Exc... | 55837444726 | 1113784 | CRDI.MI |
| 2 | QUOTExEQUITY | Banca Monte dei Paschi di Siena SpA, Ordinary ... | 55837437272 | 1114272 | BMPS.MI |
| 3 | QUOTExEQUITY | Intesa Sanpaolo SpA, Ordinary Share, Milan Sto... | 55837442001 | 1114266 | ISP.MI |
| 4 | QUOTExEQUITY | Fincantieri SpA, Ordinary Share, Milan Stock E... | 21543828243 | 161909762 | FCT.MI |
| 5 | QUOTExEQUITY | Stellantis NV, Ordinary Share, Milan Stock Exc... | 55837437653 | 1113681 | STLAM.MI |
| 6 | QUOTExEQUITY | Ferrari NV, Ordinary Share, Milan Stock Exchange | 21578864684 | 213603807 | RACE.MI |
| 7 | QUOTExEQUITY | Eni SpA, Ordinary Share, Milan Stock Exchange | 55837437646 | 1113998 | ENI.MI |
| 8 | QUOTExEQUITY | Leonardo SpA, Ordinary Share, Milan Stock Exch... | 55837437863 | 1113936 | LDOF.MI |
| 9 | QUOTExEQUITY | Telecom Italia SpA, Ordinary Share, Milan Stoc... | 55837446788 | 1113866 | TLIT.MI |
Then, RICs can be used with the functions in LSEG Data Library for Python to retieve data. For example, the following code uses LSEG Data Library for Python] to retrieve real-time data for the 7267.T and 0941.HK
ld.get_data(
universe=['7267.T','0941.HK'],
fields=['DSPLY_NAME','CF_DATE','CF_LAST','CF_BID','CF_ASK','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME','CF_YIELD']
)
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | CF_BID | CF_ASK | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | CF_YIELD | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 7267.T | HONDA MOTOR/d | 2026-02-20 | 1543.0 | 1543.0 | 1545.0 | 1573.5 | 1542.5 | TYO | 19002400 | 4.54 |
| 1 | 0941.HK | CHINA MOBILE/d | 2026-02-23 | 79.45 | 79.45 | 79.55 | 79.8 | 79.0 | HKG | 8608883 | 6.595 |
American Consolidated Quotes
In North America, consolidated quotes can take the best available price from one of several exchanges.
-
Use only the RIC root when a consolidated quote is available.
-
Example:
GM– consolidated quote for General Motors
The following code uses LSEG Data Library for Python to subscribe to the
GM and IBM RICs.
ld.get_data(
universe=['GM','IBM'],
fields=['DSPLY_NAME','CF_DATE','CF_LAST','CF_BID','CF_ASK','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME','CF_YIELD']
)
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | CF_BID | CF_ASK | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | CF_YIELD | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | GM | GENERAL MOTORS/d | 2026-02-18 | 83.67 | 83.56 | 84.0 | 83.93 | 81.7 | NYQ | 432 | 0.8605 |
| 1 | IBM | INTL BUS MACHI/d | 2026-02-18 | 260.79 | 260.0 | 262.29 | 261.11 | 256.25 | NYQ | 776 | 2.5768 |
Equity RIC Incorporating Brokerage Characters
Brokerage characters distinguish different share classes and related instruments from ordinary shares.
-
They appear as an extension to the RIC root, followed by the usual exchange identifier.
-
They can include special characters and/or lower-case letters.
-
Conventions differ by country.
Users can find the reference list of brokerage characters in the EQUITY speed-guide at:
-
WORLD/CHAR1 -
WORLD/CHAR2
…or by using the appropriate country code instead of WORLD (for example, DE/CHAR1 for German).
The following code uses LSEG Data Library for Python to subscribe to the
DE/CHAR1 page RIC and display its content.
df = ld.get_data(
universe=['DE/CHAR1'],
fields=[f"ROW80_{i}" for i in range(1, 26)]
)
print(*df.iloc[0, 1:26], sep="\n")
GERMAN EQUITIES RETRIEVAL CODES - REFINITIV SPEED GUIDE DE/CHAR1
Detailed below are retrieval codes for Equities information.
=GERMAN STOCK EXCHANGES================ =BROKERAGE CHARACTERS==================
Berlin = .BE Class A Stocks........................a
Dusseldorf = .D Class B Stocks........................b
EUWAX Warrants = .EW New Issue.............................e
Frankfurt = .F Foreign Shares........................f
Hamburg = .H Profit Sharing Certificate............g
Hanover = .HA Converted Shares......................k
Munich = .MU Registered Shares.....................n
Stuttgart = .SG Certificate of Participation..........p
XETRA = .DE Global Depository Receipt.............q
German Composites = .DEU Non-conversion Share..................r
=OPTIONS EXCHANGE====================== Non-Voting Depository Receipt.........t
EUREX - Old DTB Contracts = *.d Unit Shares...........................u
EUREX - Old SOFFEX Contracts = *.S Shares allocated for sale.............v
EUREX - New Contracts = *.EX Shares allocated to buy...............w
=BROKERAGE COMBINATIONS================ Restricted Shares.....................x
Registered/New Issue.................ne American Depository Receipts..........y
For Sale/preferred..................v_p German Certificate....................z
Restricted/Class A...................xa Preferred............................_p
Conversion/New Issue.................ke Rights..............................._r
================================================================================
Main Guide<REFINITIV> Equities Guide<EQUITY> German Equity Guide<DE/EQUITY>
Lost? Selective Access...<USER/HELP> Refinitiv Phone Support...<PHONE/HELP>
Brokerage Characters – Case Sensitivity
Brokerage characters are one of the few places where case in a RIC matters.
-
RIC root: always in UPPER CASE.
-
Brokerage characters: in lower case.
-
Exchange identifier: in UPPER CASE.
Example
DBKGn.DE– Deutsche Bank registered name shares.
The following code uses LSEG Data Library for Python to subscribe to the
DBKGn.DE RIC.
ld.get_data(
universe=['DBKGn.DE'],
fields=['DSPLY_NAME','CF_DATE','CF_LAST','CF_BID','CF_ASK','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME','CF_YIELD']
)
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | CF_BID | CF_ASK | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | CF_YIELD | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | DBKGn.DE | DEUTSCHE BANK /d | 2026-02-19 | 30.73 | 30.73 | 30.74 | 31.025 | 30.645 | GER | 1195791 | 3.2258 |
Share Class Search
Users can also use the Search API with the Equity Quotes view in LSEG Data Library for Python to search for equity instruments by share classes.
The share class values may include "Class A", "Class B", "Series A", "Series B", and similar designations.
For example, the code below demonstrates how to use the Search API to query for Class A shares on stock exchanges in Germany.
ld.discovery.search(
view=ld.discovery.Views.EQUITY_QUOTES,
filter="ShareClass eq 'Class A' and RCSExchangeCountryLeaf eq 'Germany'",
top=10)
| BusinessEntity | DocumentTitle | PermID | PI | RIC | |
|---|---|---|---|---|---|
| 0 | QUOTExEQUITY | Alphabet Inc, Ordinary Share, Class A, Xetra | 55837358951 | 17783023 | ABEA.DE |
| 1 | QUOTExEQUITY | Palantir Technologies Inc, Ordinary Share, Cla... | 21790876893 | 485947761 | PTXG.DE |
| 2 | QUOTExEQUITY | Alphabet Inc, Ordinary Share, Class A, Frankfu... | 55836411102 | 17799941 | ABEA.F |
| 3 | QUOTExEQUITY | Palantir Technologies Inc, Ordinary Share, Cla... | 21772643247 | 463782077 | PTXG.F |
| 4 | QUOTExEQUITY | Meta Platforms Inc, Ordinary Share, Class A, X... | 21503906577 | 108365367 | FB2A.DE |
| 5 | QUOTExEQUITY | Coinbase Global Inc, Ordinary Share, Class A, ... | 21808531385 | 507724011 | 1QZ.DE |
| 6 | QUOTExEQUITY | Strategy Inc, Ordinary Share, Class A, Frankfu... | 55836460594 | 8265410 | MSTRD.F |
| 7 | QUOTExEQUITY | Meta Platforms Inc, Ordinary Share, Class A, F... | 21503906996 | 108366150 | FB2A.F |
| 8 | QUOTExEQUITY | Coinbase Global Inc, Ordinary Share, Class A, ... | 21808390713 | 507545734 | 1QZ.F |
| 9 | QUOTExEQUITY | Berkshire Hathaway Inc, Ordinary Share, Class ... | 55836391959 | 8080783 | BRKa.F |
Equity Indices
All major equity indices are written with a leading dot—for example, .FTSE and .NDX. Their corresponding chain RICs use the 0# prefix, such as 0#.INDEX, 0#.FTSE, and 0#.NDX. The RIC 0#.INDEX represents the global index chain.
There are two main ways to view an equity index:
-
Full quote on the index itself
-
Shows the current index value, previous close, today’s open, and day high/low.
-
Most exchanges make index quotes available free of charge.
-
-
Constituent chain
- Shows the instruments that make up the index in a chain display.
For Example – FTSE 100 Index:
To view the FTSE 100 Index:
-
Index quote: type
.FTSE– shows a full quote on the index. -
Constituents: type
0#.FTSEto displays a chain of all constituents.
In LSEG Workspace, users can use an index RIC or a chain RIC in the global search bar to open a quote application that displays real-time data for that RIC.


The following code uses LSEG Data Library for Python to subscribe to the
.FTSE RIC.
ld.get_data(
universe=['.FTSE'],
fields=['DSPLY_NAME','CF_DATE','CF_LAST','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME']
)
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | |
|---|---|---|---|---|---|---|---|---|
| 0 | .FTSE | FTSE 100 INDEX/d | 2026-02-19 | 10627.04 | 10687.36 | 10597.58 | FSI | 1134090682 |
The following code uses the Chain object in LSEG Data Library for Python to expand the chain RIC
0#.FTSE and then use the resulting constituent RICs to retrieve data for those instruments.
from lseg.data.discovery import Chain
chain = Chain("0#.FTSE")
ld.get_data(
universe=chain.constituents,
fields=['DSPLY_NAME','CF_DATE','CF_LAST','CF_BID','CF_ASK','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME']
)
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | CF_BID | CF_ASK | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | AAF.L | AIRTEL AFRICA/d | 2026-02-19 | 351 | <NA> | 370 | 359.2 | 348.4 | LSE | 5827405 |
| 1 | AAL.L | ANGLO AMERICAN/d | 2026-02-19 | 3578 | 3252 | 3700 | 3649 | 3505 | LSE | 4029575 |
| 2 | ABF.L | A.B.FOOD/d | 2026-02-19 | 1976.5 | 1800 | 2022 | 1990.5 | 1953.5 | LSE | 1144746 |
| 3 | ADML.L | ADMIRAL GRP/d | 2026-02-19 | 2830 | 2650 | <NA> | 2860 | 2806 | LSE | 660449 |
| 4 | AHT.L | ASHTEAD GRP./d | 2026-02-19 | 5106 | 4000 | 5500 | 5114 | 5028 | LSE | 1722653 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 95 | ULVR.L | UNILEVER/d | 2026-02-19 | 5320 | 5100 | 5480 | 5364 | 5306 | LSE | 8102019 |
| 96 | UU.L | UTD. UTILITIES/d | 2026-02-19 | 1335.5 | 651 | <NA> | 1348 | 1327 | LSE | 1537952 |
| 97 | VOD.L | VODAFONE GRP./d | 2026-02-19 | 115.45 | 103.4 | 118 | 116.65 | 114 | LSE | 91759330 |
| 98 | WEIR.L | WEIR GRP./d | 2026-02-19 | 3460 | <NA> | <NA> | 3464 | 3430 | LSE | 915438 |
| 99 | WTB.L | WHITBREAD/d | 2026-02-19 | 2737 | 2400 | 2800 | 2766 | 2676 | LSE | 533889 |
100 rows × 10 columns
Indices Search
Users can use the Search API with the Index Quotes view in the LSEG Data Library for Python to search for indices RICs and chain RICs. The following example uses Search API to search for chain RICs in Japan.
ld.discovery.search(
view=ld.discovery.Views.INDEX_QUOTES,
filter="IsChain eq false and RCSIssuerCountryLeaf eq 'Japan'",
top=10)
| BusinessEntity | DocumentTitle | PermID | PI | RIC | |
|---|---|---|---|---|---|
| 0 | QUOTExINDEX | TOPIX Stock Price Index, Equity Index, Tokyo S... | 71619578433 | 1076253 | .TOPX |
| 1 | QUOTExINDEX | Nikkei 225 Index, Equity Index, Nihon Keizai S... | 130604867918 | 1076435 | .N225 |
| 2 | QUOTExINDEX | Nikkei 225 Index Close, Equity Index, Nihon Ke... | 130604875909 | 247846178 | .N225E |
| 3 | QUOTExINDEX | Tokyo SE JPX-Nikkei Index 400, Equity Index, T... | 130604842992 | 148585256 | .JPXNK400 |
| 4 | QUOTExINDEX | Tokyo Stock Exchange REIT Index, Equity Index,... | 72761158175 | 13604269 | .TREIT |
| 5 | QUOTExINDEX | Tokyo Stock Exchange Growth Market 250 Index, ... | 71191018442 | 13603968 | .MTHR |
| 6 | QUOTExINDEX | Topix Core 30 Market Index, Equity Index, Toky... | 70056551768 | 1076444 | .TOPXC |
| 7 | QUOTExINDEX | Topix 500 Market Index, Equity Index, Tokyo St... | 71464218948 | 1076448 | .TOPX500 |
| 8 | QUOTExINDEX | Topix Small Market Index, Equity Index, Tokyo ... | 69286271824 | 1076451 | .TOPXS |
| 9 | QUOTExINDEX | Topix Large 70 Market Index, Equity Index, Tok... | 70367329955 | 1076453 | .TOPXL |
Index Constituents and Weightings
Index weightings determine how much each constituent influences the index’s performance.
The following code uses the LSEG Data Library for Python to retrieve constituent weighting percentages for
.FTSE index RIC.
index_ric = ".FTSE"
fields = [
"TR.IndexConstituentRIC",
"TR.IndexConstituentName",
"TR.IndexConstituentWeightPercent"
]
constituent_df = ld.get_data(
universe=[index_ric],
fields=fields
)
constituent_df
| Instrument | Constituent RIC | Constituent Name | |
|---|---|---|---|
| 0 | .FTSE | RMV.L | Rightmove |
| 1 | .FTSE | BT.L | BT Group |
| 2 | .FTSE | AHT.L | Ashtead Group |
| 3 | .FTSE | ULVR.L | Unilever |
| 4 | .FTSE | HLN.L | Haleon |
| ... | ... | ... | ... |
| 95 | .FTSE | PSN.L | Persimmon |
| 96 | .FTSE | ABDN.L | Aberdeen Grp |
| 97 | .FTSE | BLND.L | British Land |
| 98 | .FTSE | AVV.L^A23 | AVEVA GROUP |
| 99 | .FTSE | HSV.L^A23 | Homeserve |
100 rows × 3 columns
Leavers and Joiners
In LSEG Workspace, users can check leavers and joiners of an index from the INDEX LEAVERS & JOINERS page.

The same data can also be retrieved by using the following code.
ld.get_data(
universe=[".FTSE"],
fields=[
"TR.IndexJLConstituentChangeDate",
"TR.IndexJLConstituentRIC",
"TR.IndexJLConstituentName",
"TR.IndexJLConstituentituentChange"
],
parameters={'IC':'B', 'SDate':'2023-01-01','EDate':'2026-02-20'}
)
| Instrument | Date | Constituent RIC | Constituent Name | Change | |
|---|---|---|---|---|---|
| 0 | .FTSE | 2023-01-04 | HSV.L^A23 | Homeserve | Leaver |
| 1 | .FTSE | 2023-01-04 | JMAT.L | Johnson Matthey | Joiner |
| 2 | .FTSE | 2023-01-18 | AVV.L^A23 | AVEVA GROUP | Leaver |
| 3 | .FTSE | 2023-01-18 | HSX.L | Hiscox | Joiner |
| 4 | .FTSE | 2023-04-20 | DWL.L^B26 | Dowlais Group | Joiner |
| 5 | .FTSE | 2023-04-25 | DWL.L^B26 | Dowlais Group | Leaver |
| 6 | .FTSE | 2023-06-19 | IMI.L | IMI | Joiner |
| 7 | .FTSE | 2023-06-19 | BLND.L | British Land | Leaver |
| 8 | .FTSE | 2023-09-18 | DPLM.L | Diploma | Joiner |
| 9 | .FTSE | 2023-09-18 | MKS.L | M&S | Joiner |
| 10 | .FTSE | 2023-09-18 | DPH.L^A24 | Dechra Pharms | Joiner |
| 11 | .FTSE | 2023-09-18 | HIK.L | Hikma Pharma | Joiner |
| 12 | .FTSE | 2023-09-18 | JMAT.L | Johnson Matthey | Leaver |
| 13 | .FTSE | 2023-09-18 | ABDN.L | Aberdeen Grp | Leaver |
| 14 | .FTSE | 2023-09-18 | HSX.L | Hiscox | Leaver |
| 15 | .FTSE | 2023-09-18 | PSN.L | Persimmon | Leaver |
| 16 | .FTSE | 2023-09-25 | HWDN.L | Howden Joinery | Joiner |
| 17 | .FTSE | 2023-09-25 | CRH.L | CRH | Leaver |
| 18 | .FTSE | 2023-12-18 | ICGIN.L | ICG | Joiner |
| 19 | .FTSE | 2023-12-18 | HRGV.L^C25 | Hargreaves | Leaver |
| 20 | .FTSE | 2024-01-16 | PSN.L | Persimmon | Joiner |
| 21 | .FTSE | 2024-01-16 | DPH.L^A24 | Dechra Pharms | Leaver |
| 22 | .FTSE | 2024-03-18 | EDV.L | Endeavour Ming | Leaver |
| 23 | .FTSE | 2024-03-18 | EZJ.L | easyJet | Joiner |
| 24 | .FTSE | 2024-05-31 | HRGV.L^C25 | Hargreaves | Joiner |
| 25 | .FTSE | 2024-05-31 | FLTRF.L | Flutter | Leaver |
| 26 | .FTSE | 2024-06-24 | DARK.L^J24 | Darktrace | Joiner |
| 27 | .FTSE | 2024-06-24 | VTYV.L | Vistry Group | Joiner |
| 28 | .FTSE | 2024-06-24 | SJP.L | St James's Place | Leaver |
| 29 | .FTSE | 2024-06-24 | RS1R.L | RS Group | Leaver |
| 30 | .FTSE | 2024-06-24 | OCDO.L | Ocado Group | Leaver |
| 31 | .FTSE | 2024-06-24 | LMPL.L | LondonMetrc Prty | Joiner |
| 32 | .FTSE | 2024-07-08 | SWR.L | Smurfit WestRock | Leaver |
| 33 | .FTSE | 2024-07-08 | EDV.L | Endeavour Ming | Joiner |
| 34 | .FTSE | 2024-09-23 | BRBY.L | Burberry Group | Leaver |
| 35 | .FTSE | 2024-09-23 | HSX.L | Hiscox | Joiner |
| 36 | .FTSE | 2024-10-01 | BLND.L | British Land | Joiner |
| 37 | .FTSE | 2024-10-01 | DARK.L^J24 | Darktrace | Leaver |
| 38 | .FTSE | 2024-12-23 | BMEB.L | B&M European | Leaver |
| 39 | .FTSE | 2024-12-23 | VTYV.L | Vistry Group | Leaver |
| 40 | .FTSE | 2024-12-23 | ALWA.L | Alliance Witan | Joiner |
| 41 | .FTSE | 2024-12-23 | SJP.L | St James's Place | Joiner |
| 42 | .FTSE | 2024-12-23 | GAW.L | Games Workshop | Joiner |
| 43 | .FTSE | 2024-12-23 | FRAS.L | Frasers Grp | Leaver |
| 44 | .FTSE | 2025-02-03 | PCT.L | Polar Capital | Joiner |
| 45 | .FTSE | 2025-02-03 | SMDS.L^B25 | DS Smith | Leaver |
| 46 | .FTSE | 2025-03-24 | BLND.L | British Land | Leaver |
| 47 | .FTSE | 2025-03-24 | CCEPC.L | Coca-Cola UK | Joiner |
| 48 | .FTSE | 2025-03-24 | BAB.L | Babcock Intl | Joiner |
| 49 | .FTSE | 2025-03-24 | HRGV.L^C25 | Hargreaves | Leaver |
| 50 | .FTSE | 2025-09-22 | BRBY.L | Burberry Group | Joiner |
| 51 | .FTSE | 2025-09-22 | UTG.L | Unite | Leaver |
| 52 | .FTSE | 2025-09-22 | TW.L | Taylor PLC | Leaver |
| 53 | .FTSE | 2025-09-22 | MTLN.L | Metlen Energy | Joiner |
| 54 | .FTSE | 2025-12-22 | BLND.L | British Land | Joiner |
| 55 | .FTSE | 2025-12-22 | WPP.L | WPP | Leaver |
Company News
In LSEG Workspace, users can access real-time news headlines and stories for equities and other financial instruments through the News Monitor app by entering a news query, such as a RIC.

You can use the same news query in the LSEG Data Library for Python to retrieve news headlines related to a specific RIC. For example, the following code uses the query 'R:LSEG.L and LEN' to return English news headlines for
LSEG.L
news_df = ld.news.get_headlines(
query = 'R:LSEG.L and LEN'
)
news_df
The retrieved response includes news headlines and their corresponding story IDs, which can be used to fetch the full news stories. The following code uses the first news story ID to fetch the first complete news story.
from IPython.display import HTML
story = ld.news.get_story(news_df.iloc[0]['storyId'])
#Display only the first 1000 characters of the story for brevity
HTML(story[:1000])
Top News
Top News is a browser-based research tool that displays financial news in a newspaper-style format.
In LSEG Workspace, users can access top news from the TOPNEWS app.

Top news can also be accessed through the LSEG Data Library for Python by using the news.top_news module.
from lseg.data.content import news
from IPython.display import HTML
hierarchy = news.top_news.hierarchy.Definition().get_data()
#Retrieve the top news headlines for the 'Front Page' section of the 'Main' hierarchy
news_response = news.top_news.Definition(hierarchy.data.hierarchy['Main']['Front Page'].top_news_id).get_data()
#Display the first headline, image, and a snippet of the story
display(news_response.data.df.iloc[0]["headline"])
display(news.images.Definition(news_response.data.df.iloc[0]["imageId"]).get_data().data.image.show())
#display the first 1000 characters of the story for brevity
display(HTML(ld.news.get_story(news_response.data.df.iloc[0]["storyId"])[:1000]))
Real-Time Streaming Data
LSEG Workspace provides access to real-time market data streams for financial instruments through the Quote application, allowing users and applications to subscribe to live market prices, quotes, trades, and status updates.
In LSEG Workspace, users can enter a RIC in the Quote application to access real-time streaming market data. For example, the following shows the Quote application that displays streaming data for
LSEG.L.

Using the LSEG Data Library for Python, users can also access real‑time streaming data with the ld.open_pricing_stream method by specfying RICS and fields in the universe and fields parameter respectively. If the fields parameter is omitted, the response automatically includes all available real-time fields of the subscribed RICs. For example, the following code subscribes to real-time streaming data for
LSEG.L and .FTSE.
import time
import datetime
from IPython.display import display, clear_output
def display_data(data, instrument, stream):
clear_output(wait=True)
current_time = datetime.datetime.now().time()
print(current_time, "- Data received for", instrument)
display(stream.get_snapshot())
stream = ld.open_pricing_stream(
universe=['LSEG.L','.FTSE'],
fields=['DSPLY_NAME','CF_DATE','CF_LAST','NETCHNG_1','PCTCHNG','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME','OPEN_PRC'],
on_data=display_data
)
#Run for 10 seconds to receive some data, then close the stream
time.sleep(10)
stream.close()
17:03:44.042610 - Data received for .FTSE
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | NETCHNG_1 | PCTCHNG | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | OPEN_PRC | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | LSEG.L | LON.STK.EXCH/d | 2026-02-23 | 7830.0 | -74.0 | -0.936 | 7886.0 | 7764.0 | LSE | 74500 | 7862.0 |
| 1 | .FTSE | FTSE 100 INDEX/d | 2026-02-23 | 10683.53 | -3.36 | -0.03 | 10691.89 | 10660.03 | FSI | 68977134 | 10686.75 |
<OpenState.Closed: 'Closed'>
Delayed Equities and Indices
If you require price levels for a share or index but do not have access to the real-time exchange feed, you can often use delayed quotes.
- Most exchanges provide delayed data free of charge.
- Delay times vary by exchange and by product.
Real-Time vs. Delayed Data
Real-time data reflects actual market prices as they occur, while delayed data (typically 15-20 minutes behind) is available for users without full real-time market data access. LSEG Workspace allows filtering by available data feeds to match your subscription level.
Checking delay times
- Use
WORLD/DELAY1page RIC to see which exchanges offer delayed information and the length of each delay.
Requesting delayed quotes
-
For a delayed full quote on an equity or index, put a forward slash (
/) in front of the RIC.- Example:
/LSEG.L– delayed full quote for London Stock Exchange Group PLC.
- Example:
-
For delayed index constituents (chains), put
/between the chain command and the index RIC:- Example:
0#/.FTSEor/.FTSE– delayed constituents for the FTSE 100 Index.
- Example:
For example, the following code subscribes to real-time streaming data for the delayed RICs
/LSEG.L and /.FTSE.
import time
import datetime
from IPython.display import display, clear_output
def display_data(data, instrument, stream):
clear_output(wait=True)
current_time = datetime.datetime.now().time()
print(current_time, "- Data received for", instrument)
display(stream.get_snapshot())
stream = ld.open_pricing_stream(
universe=['/LSEG.L','/.FTSE'],
fields=['DSPLY_NAME','CF_DATE','CF_LAST','NETCHNG_1','PCTCHNG','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME','OPEN_PRC'],
on_data=display_data
)
#Run for 10 seconds to receive some data, then close the stream
time.sleep(10)
stream.close()
17:20:08.532593 - Data received for /.FTSE
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | NETCHNG_1 | PCTCHNG | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | OPEN_PRC | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | /LSEG.L | LON.STK.EXCH/d | 2026-02-23 | 7818.0 | -86.0 | -1.088 | 7886.0 | 7764.0 | LSE | 77212 | 7862.0 |
| 1 | /.FTSE | FTSE 100 INDEX/d | 2026-02-23 | 10683.91 | -2.98 | -0.03 | 10691.89 | 10660.03 | FSI | 74174103 | 10686.75 |
<OpenState.Closed: 'Closed'>
The following code uses the Chain object in LSEG Data Library for Python to expand the delayed chain RIC
0#/.FTSE and then use the resulting constituent RICs to retrieve data for those instruments.
from lseg.data.discovery import Chain
chain = Chain("0#/.FTSE")
ld.get_data(
universe=chain.constituents,
fields=['DSPLY_NAME','CF_DATE','CF_LAST','CF_BID','CF_ASK','CF_HIGH','CF_LOW','CF_EXCHNG','CF_VOLUME']
)
| Instrument | DSPLY_NAME | CF_DATE | CF_LAST | CF_BID | CF_ASK | CF_HIGH | CF_LOW | CF_EXCHNG | CF_VOLUME | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | /AAF.L | AIRTEL AFRICA/d | 2026-02-23 | 355.6 | 355 | 355.6 | 359 | 354.8 | LSE | 264723 |
| 1 | /AAL.L | ANGLO AMERICAN/d | 2026-02-23 | 3637.0 | 3633 | 3635 | 3660 | 3604 | LSE | 204511 |
| 2 | /ABF.L | A.B.FOOD/d | 2026-02-23 | 1968.0 | 1967 | 1968 | 1974 | 1952 | LSE | 86527 |
| 3 | /ADML.L | ADMIRAL GRP/d | 2026-02-23 | 2868.0 | 2866 | 2868 | 2902 | 2866 | LSE | 49710 |
| 4 | /AHT.L | ASHTEAD GRP./d | 2026-02-23 | 5178.0 | 5176 | 5180 | 5208 | 5108 | LSE | 100243 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 95 | /ULVR.L | UNILEVER/d | 2026-02-23 | 5394.0 | 5393 | 5395 | 5423 | 5383 | LSE | 151660 |
| 96 | /UU.L | UTD. UTILITIES/d | 2026-02-23 | 1333.5 | 1333.5 | 1334 | 1351.5 | 1333.5 | LSE | 55315 |
| 97 | /VOD.L | VODAFONE GRP./d | 2026-02-23 | 115.75 | 115.75 | 115.8 | 116.4 | 115.35 | LSE | 4338223 |
| 98 | /WEIR.L | WEIR GRP./d | 2026-02-23 | 3472.0 | 3470 | 3474 | 3478 | 3450 | LSE | 49751 |
| 99 | /WTB.L | WHITBREAD/d | 2026-02-23 | 2695.0 | 2694 | 2697 | 2730 | 2678 | LSE | 154804 |
100 rows × 10 columns
Second-Level (Order Book / Market Maker) Data
Some order-driven exchanges provide market-maker or depth-of-market information. For example, the London Stock Exchange RICs (LSEG.L) support the Level 2 Market-By-Order and Market-By-Price domains while the NASDAQ RICs (GOOG.O) support the Level 2 Market-Maker domain.
Using the LSEG Data Library for Python, users can access real‑time data from the Level 2 domains (MarketByOrder, MarketByPrice, and MarketMaker). The following example illustrates how to stream real‑time Level 2 Market‑By‑Order data for the RIC
LSEG.L.
from lseg.data.delivery import omm_stream
import json
import time
import datetime
def display_event(eventType, event):
currentTime = datetime.datetime.now().time()
print("----------------------------------------------------------")
print(">>> {} event received at {}".format(eventType, currentTime))
print(json.dumps(event, indent=2))
return
stream = omm_stream.Definition(
domain="MarketByOrder",
name="LSEG.L"
).get_stream()
stream.on_refresh(lambda event, item_stream : display_event("Refresh", event))
stream.on_update(lambda event, item_stream : display_event("Update", event))
stream.on_status(lambda event, item_stream : display_event("Status", event))
stream.on_error(lambda event, item_stream : display_event("Error", event))
stream.open()
#Run for 10 seconds to receive some data, then close the stream
time.sleep(10)
stream.close()
----------------------------------------------------------
>>> Status event received at 16:29:39.797967
{
"Domain": "MarketByOrder",
"Type": "Status",
"ID": 20,
"Key": {
"Name": "LSEG.L"
},
"State": {
"Data": "Suspect",
"Stream": "Closed",
"Code": "NotEntitled",
"Text": "Access Denied: User req to PE(249)"
}
}
<OpenState.Closed: 'Closed'>
Real-Time Historical Data
Real-time historical data in LSEG Workspace provides access to current and recent pricing information for equities, indices, and other trading instruments. This data is essential for market analysis, trading decisions, and monitoring portfolio performance.
In LSEG Workspace, users can access real-time interday, intraday, and time and sales historical data through the Price History (PH) and Times & Sales (TAS) applications.


Using the LSEG Data Library for Python, users can also retrieve real‑time historical data with the ld.get_history method. The interval parameter allows users to specify the desired frequency and supports the following values:
tick, tas, taq, minute, 1min, 5min, 10min, 30min, 60min, hourly, 1h, daily, 1d, 1D, 7D, 7d, weekly, 1W, monthly, 1M, quarterly, 3M, 6M, yearly, 1Y
If the fields parameter is omitted, the response automatically includes all available fields for the selected interval.
Interday Historical Data
The following code is used to retrieve daily historical data (OHLC) for LSEG.L.
ld.get_history(
universe=['LSEG.L'],
fields = ['OPEN_PRC','HIGH_1','LOW_1','TRDPRC_1'],
interval = '1d')
| LSEG.L | OPEN_PRC | HIGH_1 | LOW_1 | TRDPRC_1 |
|---|---|---|---|---|
| Date | ||||
| 2026-01-26 | 8796 | 8834 | 8578 | 8614.0 |
| 2026-01-27 | 8576 | 8664 | 8224 | 8252.0 |
| 2026-01-28 | 8268 | 8380 | 8216 | 8296.0 |
| 2026-01-29 | 8344 | 8384 | 8118 | 8204.0 |
| 2026-01-30 | 8100 | 8210 | 8050 | 8146.0 |
| 2026-02-02 | 8102 | 8328 | 8066 | 8310.0 |
| 2026-02-03 | 8236 | 8282 | 7124 | 7434.0 |
| 2026-02-04 | 7106 | 7204 | 6684 | 7058.0 |
| 2026-02-05 | 7340 | 7744 | 7298 | 7608.0 |
| 2026-02-06 | 7248 | 7716 | 7184 | 7568.0 |
| 2026-02-09 | 7480 | 7634 | 7456 | 7514.0 |
| 2026-02-10 | 7498 | 7620 | 7012 | 7408.0 |
| 2026-02-11 | 7880 | 7988 | 7250 | 7428.0 |
| 2026-02-12 | 7492 | 7614 | 7408 | 7500.0 |
| 2026-02-13 | 7630 | 7732 | 7540 | 7584.0 |
| 2026-02-16 | 7722 | 7726 | 7600 | 7610.0 |
| 2026-02-17 | 7634 | 7658 | 7510 | 7576.1579 |
| 2026-02-18 | 7500 | 7808 | 7448 | 7728.0 |
| 2026-02-19 | 7832 | 7892 | 7756 | 7780.0 |
| 2026-02-20 | 7812 | 7968 | 7812 | 7924.0 |
Intraday Historical Data
The following code is used to retrieve hourly historical data (OHLC) for LSEG.L.
ld.get_history(
universe=['LSEG.L'],
fields = ['OPEN_PRC','HIGH_1','LOW_1','TRDPRC_1'],
interval = '1h')
| LSEG.L | OPEN_PRC | HIGH_1 | LOW_1 | TRDPRC_1 |
|---|---|---|---|---|
| Timestamp | ||||
| 2026-02-18 15:00:00 | 7718.0 | 7748 | 7687.7956 | 7730.0 |
| 2026-02-18 16:00:00 | 7730.0 | 7808 | 7718.0 | 7790.0 |
| 2026-02-19 08:00:00 | 7832.0 | 7892 | 7760.0 | 7796.0 |
| 2026-02-19 09:00:00 | 7800.0 | 7862 | 7767.8902 | 7827.9 |
| 2026-02-19 10:00:00 | 7820.0 | 7872 | 7812.0 | 7852.0 |
| 2026-02-19 11:00:00 | 7852.0 | 7852 | 7796.0 | 7796.0 |
| 2026-02-19 12:00:00 | 7798.0 | 7816 | 7772.0 | 7797.664 |
| 2026-02-19 13:00:00 | 7800.0 | 7808 | 7764.0 | 7808.0 |
| 2026-02-19 14:00:00 | 7808.0 | 7854 | 7794.0 | 7854.0 |
| 2026-02-19 15:00:00 | 7850.0 | 7850 | 7756.0 | 7774.0 |
| 2026-02-19 16:00:00 | 7776.0 | 7802 | 7766.0 | 7778.0 |
| 2026-02-20 08:00:00 | 7812.0 | 7930 | 7812.0 | 7850.0 |
| 2026-02-20 09:00:00 | 7850.0 | 7896 | 7848.0 | 7876.0 |
| 2026-02-20 10:00:00 | 7880.0 | 7900 | 7848.01 | 7866.0 |
| 2026-02-20 11:00:00 | 7866.0 | 7894 | 7862.0 | 7886.0 |
| 2026-02-20 12:00:00 | 7888.097 | 7930 | 7884.0 | 7921.0177 |
| 2026-02-20 13:00:00 | 7922.0078 | 7934 | 7854.0 | 7885.816 |
| 2026-02-20 14:00:00 | 7882.376 | 7918 | 7846.0 | 7906.415 |
| 2026-02-20 15:00:00 | 7906.0 | 7968 | 7892.0 | 7934.0 |
| 2026-02-20 16:00:00 | 7932.0 | 7956 | 7904.0 | 7904.0 |
Times and Sales Data
The following code is used to retrieve times and sales data for LSEG.L and the fields parameter is omitted.
ld.get_history(
universe=['LSEG.L'],
interval = 'tas')
C:\Users\jphuriph\AppData\Roaming\Python\Python312\site-packages\lseg\data_tools_dataframe.py:177:FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True)
| LSEG.L | EVENT_TYPE | RTL | SOURCE_DATETIME | SEQNUM | TRDXID_1 | TRDPRC_1 | TRDVOL_1 | VWAP | BID | BIDSIZE | ... | TRNOVR_UNS | NETCHNG_1 | MMT_CLASS | TR_TRD_FLG | ACVOL_UNS | OPEN_PRC | HIGH_1 | LOW_1 | QUALIFIERS | TAG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Timestamp | |||||||||||||||||||||
| 2026-02-20 16:35:10.782 | trade | 38942 | 2026-02-20T16:35:20.048000000Z | 1805306 | SINT | 7904.0 | 95 | 7899 | 7904 | 1379 | ... | 11151222768.700001 | <NA> | 47----1-MP---- | SI | 1413785 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38942_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38686 | 2026-02-20T16:35:19.078000000Z | 1805194 | SINT | 7904.0 | 96 | 7899 | 7904 | 1379 | ... | 11142046224.700001 | <NA> | 47----1-MP---- | SI | 1412624 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38686_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38718 | 2026-02-20T16:35:19.078000000Z | 1805196 | SINT | 7904.0 | 99 | 7899 | 7904 | 1379 | ... | 11142828720.700001 | <NA> | 47----1-MP---- | SI | 1412723 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38718_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38750 | 2026-02-20T16:35:19.225000000Z | 1805211 | SINT | 7904.0 | 97 | 7899 | 7904 | 1379 | ... | 11143595408.700001 | <NA> | 47----1-MP---- | SI | 1412820 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38750_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38782 | 2026-02-20T16:35:19.290000000Z | 1805216 | SINT | 7904.0 | 98 | 7899 | 7904 | 1379 | ... | 11144370000.700001 | <NA> | 47----1-MP---- | SI | 1412918 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38782_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38814 | 2026-02-20T16:35:19.378000000Z | 1805231 | SINT | 7904.0 | 325 | 7899 | 7904 | 1379 | ... | 11146938800.700001 | <NA> | 47----1-MP---- | SI | 1413243 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38814_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38846 | 2026-02-20T16:35:19.689000000Z | 1805269 | SINT | 7904.0 | 91 | 7899 | 7904 | 1379 | ... | 11147658064.700001 | <NA> | 47----1-MP---- | SI | 1413334 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38846_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38878 | 2026-02-20T16:35:19.905000000Z | 1805290 | SINT | 7904.0 | 101 | 7899 | 7904 | 1379 | ... | 11148456368.700001 | <NA> | 47----1-MP---- | SI | 1413435 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38878_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38910 | 2026-02-20T16:35:19.976000000Z | 1805297 | SINT | 7904.0 | 255 | 7899 | 7904 | 1379 | ... | 11150471888.700001 | <NA> | 47----1-MP---- | SI | 1413690 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38910_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38622 | 2026-02-20T16:35:18.564000000Z | 1805140 | SINT | 7904.0 | 151 | 7899 | 7904 | 1379 | ... | 11140504944.700001 | <NA> | 47------MP---- | SI | 1412429 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38622_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38974 | 2026-02-20T16:35:21.155000000Z | 1805391 | SINT | 7904.0 | 3 | 7899 | 7904 | 1379 | ... | 11151246480.700001 | <NA> | 47----1-MP---- | SI | 1413788 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38974_0_2 |
| 2026-02-20 16:35:10.782 | trade | 39006 | 2026-02-20T16:35:21.382000000Z | 1805425 | SINT | 7904.0 | 98 | 7899 | 7904 | 1379 | ... | 11152021072.700001 | <NA> | 47----1-MP---- | SI | 1413886 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_39006_0_2 |
| 2026-02-20 16:35:10.782 | trade | 38654 | 2026-02-20T16:35:18.653000000Z | 1805161 | SINT | 7904.0 | 99 | 7899 | 7904 | 1379 | ... | 11141287440.700001 | <NA> | 47----1-MP---- | SI | 1412528 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m35_s10_ms0000_0_38654_0_2 |
| 2026-02-20 16:38:46.374 | trade | 39182 | 2026-02-20T16:38:47.720000000Z | 1813932 | XLON | 7920.96 | 25 | 7899 | 7904 | 1385 | ... | 11168793784.700001 | <NA> | 45------MT---- | RX | 1413911 | 7812 | 7968 | 7812 | R[ACT_FLAG1];R[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m38_s46_ms0374_0_39182_0_2 |
| 2026-02-20 16:40:00.109 | mkt. condition | 39200 | 2026-02-20T16:40:00.075000000Z | 5864944 | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | ... | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | CLS[PRC_QL3];Mkt Conditions[USER] | d20_m02_y2026_h16_m40_s00_ms0109_0_39200_0_20 |
| 2026-02-20 16:47:09.000 | trade | 39310 | 2026-02-20T16:47:10.278000000Z | 1826510 | SINT | 7908.039 | 33000 | 7899 | 7904 | 1385 | ... | 11429759071.700001 | <NA> | 47----B-MP---2 | SI | 1446911 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m47_s09_ms0000_0_39310_0_2 |
| 2026-02-20 16:48:22.000 | trade | 39342 | 2026-02-20T16:48:23.392000000Z | 1827654 | SINT | 7904.0 | 137 | 7899 | 7904 | 1385 | ... | 11430841919.700001 | <NA> | 47----B-MP---2 | SI | 1447048 | 7812 | 7968 | 7812 | S[ACT_FLAG1];S[CONDCODE_1];[CONDCODE_2];N [EL... | d20_m02_y2026_h16_m48_s22_ms0000_0_39342_0_2 |
| 2026-02-20 17:15:00.099 | mkt. condition | 39520 | 2026-02-20T17:15:00.046000000Z | 5867533 | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | ... | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | CLS[PRC_QL3];Mkt Conditions[USER] | d20_m02_y2026_h17_m15_s00_ms0099_0_39520_0_20 |
| 2026-02-20 17:30:00.500 | mkt. condition | 39616 | 2026-02-20T17:30:00.099000000Z | 5868282 | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | ... | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | CLS[PRC_QL3];Mkt Conditions[USER] | d20_m02_y2026_h17_m30_s00_ms0500_0_39616_0_20 |
| 2026-02-23 03:55:01.023 | trade | 39918 | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | ... | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | <NA> | d23_m02_y2026_h03_m55_s01_ms0023_0_39918_0_22 |
20 rows × 30 columns
The help(ld.get_history) command can be used to print the desciption of this method and list all available parameters.
help(ld.get_history)
Help on function get_history in module lseg.data._access_layer.get_history_func:
get_history(universe: Union[str, Iterable[str]], fields: Union[str, Iterable[str], NoneType] = None, interval: Optional[str] = None, start: 'OptDateTime' = None, end: 'OptDateTime' = None, adjustments: Optional[str] = None, count: Optional[int] = None, parameters: Union[str, dict, NoneType] = None, header_type: lseg.data.content._header_type.HeaderType = <HeaderType.TITLE: 2>) -> pandas.core.frame.DataFrame
Retrieves the pricing history, as well as Fundamental and Reference data history.
Parameters
----------
universe: str | list
Instruments to request
fields: str | list, optional
Fields to request
interval: str, optional
Date interval. Supported intervals are:
tick, tas, taq, minute, 1min, 5min, 10min, 30min, 60min, hourly, 1h, daily,
1d, 1D, 7D, 7d, weekly, 1W, monthly, 1M, quarterly, 3M, 6M, yearly, 1Y
start: str or date or datetime or timedelta, optional
The start date and timestamp of the requested history
end: str or date or datetime or timedelta, optional
The end date and timestamp of the requested history
adjustments : str, optional
Tells the system whether to apply or not apply CORAX (Corporate Actions)
events or exchange/manual corrections or price and volume adjustment
according to trade/quote qualifier summarization actions to historical time
series data. Possible values are:
exchangeCorrection, manualCorrection, CCH, CRE, RTS, RPO, unadjusted,
qualifiers
count : int, optional
The maximum number of data points returned. Values range: 1 - 10000.
Applies only to pricing fields.
parameters: str | dict, optional
Single global parameter key=value or dictionary
of global parameters to request.
Applies only to TR fields.
header_type: HeaderType, default HeaderType.TITLE
If HeaderType.TITLE - returns field title as column headers for data
If HeaderType.NAME - returns field name as column headers for data
If HeaderType.NAME_AND_TITLE - returns field name and title as column headers for data
Returns
-------
pandas.DataFrame
Examples
--------
>>> get_history(universe="GOOG.O")
>>> get_history(universe="GOOG.O", fields="tr.Revenue", interval="1Y")
>>> get_history(
... universe="GOOG.O",
... fields=["BID", "ASK", "tr.Revenue"],
... interval="1Y",
... start="2015-01-01",
... end="2020-10-01",
... )
Equity Views (LSEG Workspace)
Equity Views are web-based displays that provide a consolidated view of company information.
In LSEG Workspace, users can open the Equity View by entering a RIC in the global search bar and pressing Enter. The view displays the instrument's data across multiple categorized tabs.

Overview
The Overview tab includes corporate information, financial summaries, key ratios, and aggregated data from other tabs. This information can typically be retrieved using ld.get_data with the appropriate fundamental fields prefixed with TR. Users can locate these fields and parameters through the Data Item Browser tool, or—where available—by clicking the small (?) icon displayed next to a field name to identify the source field that provides the data.

For example, the following code uses LSEG Data Library for Python to retrieve corporate information and some key ratios for
LSEG.L.
ld.get_data(
universe = ['LSEG.L'],
fields = [
'TR.BusinessSummary',
'TR.OrganizationWebsite',
'TR.F.TotRevenue(Period=FY0)',
'TR.F.EVToEBITDA(Period=FY0)',
'TR.F.EVToEBIT(Period=FY0)',
'TR.F.Ev(Period=FY0)',
'TR.F.PriceToTotRevPerShr(Period=FY0)',
'TR.H.PE'
]
)
| Instrument | Business Description | Organization Website | Revenue from Business Activities - Total | Enterprise Value to EBITDA | Enterprise Value to EBIT | Enterprise Value | Price to Total Revenue per Share | P/E(Time Series Ratio) | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | LSEG.L | London Stock Exchange Group plc (LSEG) is a gl... | https://www.lseg.com/ | 7685000000 | 16.798321 | 36.726093 | 68604342401 | 7.856181 | 40.753474 |
News
The News tab displays the news headlines that relates to the item.
Using the LSEG Data Library for Python, users can call the ld.news.get_headlines method with the 'R:<RIC>' news query to retrieve news headlines related to a specific RIC. For more information, please refer to the Company News section.
Price & Charts
The Price & Charts tab displays the current prices and historical prices.
Using the LSEG Data Library for Python, users can call the ld.get_data, ld.open_pricing_stream, and ld.get_history methods to retrieve current prices, streaming prices, and historical prices respectively. For more information, please refer to the following sections.
- Full Quotes for Equities
- Real-Time Streaming Data
- Second-Level (Order Book / Market Maker) Data
- Real-Time Historical Data
Estimates
The Estimates tab provides analyst‑driven forecasts, including detailed estimates, valuation multiples, recommendations, and historical surprises. It also offers tools such as guidance summaries, analyst revision tracking, and interactive financial views to help assess forward‑looking performance.
Estimates are part of the library’s Fundamental & Reference ("TR.") data items. You discover the exact field mnemonics (e.g., TR.EPSMean, TR.RevenueMean, TR.TargetPriceMean, TR.EpsSmartEst, TR.EpsPreSurprisePct etc.) and their parameters (period, currency, fiscal year) in the Data Item Browser (DIB) inside Workspace, then call them with the ld.get_data or ld.get_history methods.
The code below uses the LSEG Data Library for Python to retrieve monthly estimate data for the past ten months.
ld.get_data(
universe = ['LSEG.L'],
fields = ['TR.EpsSmartEst.Date','TR.EpsSmartEst','TR.RevenueSmartEst','TR.EBITDASmartEst','TR.EBITDAPreSurprise'],
parameters = {'Frq':'M', 'SDate':0,'Period':'FY1','EDate':'-9'}
)
| Instrument | Date | Earnings Per Share - SmartEstimate® | Revenue - SmartEstimate® | EBITDA - SmartEstimate® | EBITDA - Predicted Surprise | |
|---|---|---|---|---|---|---|
| 0 | LSEG.L | 2026-01-29 | 4.135432 | 8979579720 | 4518387170 | 997840 |
| 1 | LSEG.L | 2025-12-18 | 4.130861 | 8970049630 | 4506580980 | 14950510 |
| 2 | LSEG.L | 2025-11-24 | 4.126651 | 8969476400 | 4504214570 | 13560490 |
| 3 | LSEG.L | 2025-10-31 | 4.127687 | 8971498320 | 4504601650 | 13590570 |
| 4 | LSEG.L | 2025-09-30 | 4.001214 | 8968278340 | 4388766560 | -11512510 |
| 5 | LSEG.L | 2025-08-12 | 3.993171 | 8988386340 | 4394642500 | -11390290 |
| 6 | LSEG.L | 2025-07-31 | 3.895429 | 8958129110 | 4409912860 | -15137140 |
| 7 | LSEG.L | 2025-06-30 | 3.919265 | 9011994270 | 4437918100 | -4739190 |
| 8 | LSEG.L | 2025-05-28 | 3.928705 | 9033084780 | 4453312770 | -3749620 |
| 9 | LSEG.L | 2025-04-22 | 3.982246 | 9117401260 | 4520368310 | -14925120 |
Financials
The Financials tab in LSEG Workspace provides a comprehensive view of a company’s fundamental data, including key financial statements such as the income statement, balance sheet, and cash flow. It also offers deeper analytical sections covering operating metrics, segments, valuation, pension details, and capital structure. Together, these tools help users evaluate a company’s financial performance, stability, and underlying drivers.
You can retrieve the data shown in the Financials tab by calling the TR.* fundamental data fields through the LSEG Data Library’s ld.get_data or ld.get_history functions, which provide access to income statements, balance sheets, cash flows, valuation metrics, and other fundamentals. The library exposes these items through the Fundamental & Reference content set, and you simply specify the fields along with parameters such as period type, fiscal year, currency, and scale. Exact field names and valid parameters can be found in the Data Item Browser (DIB) inside Workspace before using them in your Python requests.
The code below uses the LSEG Data Library for Python to retrieve the current income statment fields and values.
ld.get_data(
universe = ['VOD.L'],
fields = ['TR.F.IncomeStatement.fieldname', 'TR.F.IncomeStatement.fielddescription', 'TR.F.IncomeStatement'],
parameters={'Period': 'FY0', 'reportingState': 'Rsdt', 'curn': 'Native', 'Scale': '6', 'SORTA': 'LISeq'})
| Instrument | Name | Description | STD Income Statement All | |
|---|---|---|---|---|
| 0 | VOD.L | TR.F.RevGoodsSrvc | Revenue from Goods & Services [SNTS] represent... | 30758.0 |
| 1 | VOD.L | TR.F.SalesOfGoodsSrvcNetUnclassif | Sales of Goods & Services - Net - Unclassified... | 30758.0 |
| 2 | VOD.L | TR.F.RevBizRelActivOthTot | Revenue from Business-Related Activities - Oth... | 6690.0 |
| 3 | VOD.L | TR.F.TotRevenue | Revenue from Business Activities - Total [STLR... | 37448.0 |
| 4 | VOD.L | TR.F.CostOfOpRev | Cost of Operating Revenue [SCOR] represents th... | 24929.0 |
| ... | ... | ... | ... | ... |
| 164 | VOD.L | TR.F.DPSComGrossIssueByPrdEndDate | DPS - Common - Gross - Issue - By Period End D... | 0.0 |
| 165 | VOD.L | TR.F.OpExpnExclNonCashChrgTot | Operating Expenses excluding Non-Cash Charges ... | 21626.0 |
| 166 | VOD.L | TR.F.IncAvailToComShrBefDeprAmort | Income Available to Common Shares before Depre... | 6635.0 |
| 167 | VOD.L | TR.F.FixedChrg | Fixed Charges [SFXC] represents the sum of Int... | 2541.0 |
| 168 | VOD.L | TR.F.EstTaxRate | Estimated Tax Rate [SETAXV] represents the est... | 0.19 |
169 rows × 4 columns
ESG
The ESG tab in LSEG Workspace provides a comprehensive view of a company’s environmental, social, and governance performance, including dashboards, scores, peer comparisons, and controversy tracking. It also offers climate‑related analytics such as Climate MAP and green revenue data, along with regulatory frameworks like EU Taxonomy and SFDR. Additional sections cover sustainable debt, sovereign sustainability, and research insights to support deeper sustainable‑finance analysis.
You can retrieve ESG data by requesting the appropriate TR.* ESG fields using the LSEG Data Library’s ld.get_data or ld.get_history functions. These fields are part of the library’s Fundamental & Reference content set, and you simply provide the field names with any required parameters. Use the Data Item Browser (DIB) in Workspace to look up the exact ESG field mnemonics and valid parameters before querying them.
The code below uses the LSEG Data Library for Python to retrieve the ESG data from the past 10 years.
ld.get_history(
universe=['LSEG.L'],
fields=[
'TR.TRESGCScore',
'TR.ESGPeriodLastUpdateDate'
'TR.TRESGResourceUseScore',
'TR.TRESGInnovationScore',
'TR.TRESGWorkforceScore',
'TR.TRESGHumanRightsScore',
'TR.TRESGCommunityScore',
'TR.TRESGProductResponsibilityScore',
'TR.TRESGShareholdersScore'
],
parameters={'Frq':'FY', 'SDate':0,'EDate':-9,'Period':'FY0'})
| LSEG.L | ESG Combined Score | Environmental Innovation Score | Workforce Score | Human Rights Score | Community Score | Product Responsibility Score | Shareholders Score |
|---|---|---|---|---|---|---|---|
| Date | |||||||
| 2015-12-31 | 56.84593 | 38.392857 | 82.594937 | 87.179487 | 87.025316 | 48.165138 | 61.180905 |
| 2016-12-31 | 59.804219 | 39.393939 | 80.167598 | 97.222222 | 87.430168 | 48.571429 | 91.287879 |
| 2017-12-31 | 68.087727 | 39.325843 | 92.081448 | 96.753247 | 88.409091 | 45.151515 | 69.515306 |
| 2018-12-31 | 71.097932 | 54.245283 | 96.975806 | 93.396226 | 97.368421 | 46.039604 | 63.127854 |
| 2019-12-31 | 75.222667 | 51.712329 | 99.830508 | 91.724138 | 96.779661 | 45.01992 | 61.630219 |
| 2020-12-31 | 72.768987 | 49.411765 | 98.948949 | 90.963855 | 98.048048 | 43.79562 | 60.142631 |
| 2021-12-31 | 67.719599 | 50.492611 | 97.146739 | 92.195122 | 80.298913 | 43.553459 | 58.653846 |
| 2022-12-31 | 69.393003 | 67.400881 | 97.885572 | 89.8 | 94.154229 | 42.458101 | 52.777778 |
| 2023-12-31 | 58.877727 | 67.083333 | 98.880597 | 87.773723 | 93.656716 | 42.465753 | 48.846154 |
| 2024-12-31 | 76.297544 | 64.4 | 97.381546 | 87.147887 | 92.892768 | 42.204301 | 89.137134 |
Corporate Governance & Officers
The Corporate Governance & Officers tab in LSEG Workspace provides insights into a company’s governance structure, including takeover defenses, activism activity, and peer comparisons of governance practices. It also offers detailed information on officers and directors, their relationships, and organizational connections. Together, these tools help users evaluate leadership, governance risks, and corporate influence networks.
You can retrieve Corporate Governance & Officers data by calling the appropriate TR.* fundamental fields through the LSEG Data Library for Python using ld.get_data or ld.get_history. These fields cover items such as takeover defenses, activism activity, officer/director details, and relationship data, all of which are part of the library’s Fundamental & Reference content set. To use them, look up the exact TR. field mnemonics in the Data Item Browser (DIB) in Workspace, then pass those fields—along with any required parameters like period or entity identifiers—into your Python requests.
The code below uses the LSEG Data Library for Python to retrieve the key company officers of LSEG.L.
ld.get_data(
universe=['LSEG.L'],
fields=['TR.OfficerName',
'TR.OfficerTitle',
'TR.OfficerTitleSince',
'TR.OfficerAge',
],
parameters={'RNK':'R1:R30'}
)
C:\Users\jphuriph\AppData\Roaming\Python\Python312\site-packages\lseg\data_tools_dataframe.py:192:FutureWarning: Downcasting behavior in replace is deprecated and will be removed in a future version. To retain the old behavior, explicitly call result.infer_objects(copy=False). To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True)
| Instrument | Officer Name | Officer Title | Officer Title Since | Officer Age | |
|---|---|---|---|---|---|
| 0 | LSEG.L | Mr. Donald (Don) Robert, CBE | Non-Executive Independent Chairman of the Board | 2019 | <NA> |
| 1 | LSEG.L | Mr. David Schwimmer, J.D. | Group Chief Executive Officer, Executive Director | 2023 | 54 |
| 2 | LSEG.L | Mr. Michel-Alain Proch | Group Chief Financial Officer, Executive Director | 2024 | 55 |
| 3 | LSEG.L | Mr. Daniel Maguire | Group Head - LSEG Markets, Chief Executive Off... | 2024 | 47 |
| 4 | LSEG.L | Mr. Pascal Boillat | Chief Operating Officer | 2024 | <NA> |
| 5 | LSEG.L | Ms. Erica Bourne | Chief People Officer | 2023 | <NA> |
| 6 | LSEG.L | Mr. Irfan Hussain | Chief Information Officer | 2024 | <NA> |
| 7 | LSEG.L | Mr. Steve John | Chief Corporate Affairs and Marketing Officer | 2025 | <NA> |
| 8 | LSEG.L | Mr. Balbir Bakhshi | Chief Risk Officer | 2021 | 55 |
| 9 | LSEG.L | Ms. Catherine Johnson | General Counsel | 2020 | 56 |
| 10 | LSEG.L | Gianluca Biagini | Co-Head of Data & Analytics | 2025 | <NA> |
| 11 | LSEG.L | Mr. Chris Coleman | Group Head of Sales and Account Management | 2026 | <NA> |
| 12 | LSEG.L | Mr. Ron Lefferts | Co-Head of Data & Analytics | 2025 | <NA> |
| 13 | LSEG.L | Ms. Lisa Margaret Condron | Group Company Secretary | 1753 | 57 |
| 14 | LSEG.L | Mr. Scott Guthrie | Non-Executive Director | 2023 | <NA> |
| 15 | LSEG.L | Mr. Dominic Blakemore | Non-Executive Independent Director | 2020 | 54 |
| 16 | LSEG.L | Mr. Martin J. Brand | Non-Executive Independent Director | 2025 | 50 |
| 17 | LSEG.L | Dame Elizabeth Corley | Non-Executive Independent Director | 2025 | <NA> |
| 18 | LSEG.L | Prof. Kathleen Traynor Derose | Non-Executive Independent Director | 2018 | 65 |
| 19 | LSEG.L | Mrs. Tsega Gebreyes | Non-Executive Independent Director | 2021 | 55 |
| 20 | LSEG.L | Ms. Cressida M. Hogg, CBE | Senior Non-Executive Independent Director | 2021 | <NA> |
| 21 | LSEG.L | Mr. Lloyd Pitchford | Non-Executive Independent Director | 2025 | 53 |
| 22 | LSEG.L | Dr. Valerie (Val) Rahmani | Non-Executive Independent Director | 2017 | 67 |
| 23 | LSEG.L | Mr. William Vereker | Non-Executive Independent Director | 2022 | <NA> |
Events
The Events tab in LSEG Workspace provides a consolidated view of a company’s key corporate events, including earnings announcements, meetings, and other scheduled activities. It also covers major transactions such as company deals and M&A insights, along with detailed corporate actions like capital changes and dividend events. These tools help users track important milestones and structural changes affecting a company.
You can retrieve data from the Events tab by calling the appropriate TR.* corporate‑events and corporate‑actions fields using the LSEG Data Library’s ld.get_data or ld.get_history functions. These fields cover items such as earnings events, company deals, M&A indicators, capital changes, and dividend details, and can be queried by supplying the required event parameters (e.g., date range or event type). The exact field mnemonics can be looked up in the Data Item Browser (DIB) inside Workspace, then passed directly into your Python requests.
The code below uses the LSEG Data Library for Python to retrieve upcoming events scheduled for the next five months.
ld.get_data(
universe = ['LSEG.L'],
fields = [
'TR.EventStartDate',
'TR.EventType',
'TR.EventTitle',
'TR.EventEndDate'
],
parameters={'SDate':'1D','EDate':'5M','EventType':'ALL'}
)
| Instrument | Event Start Date | Company Event Type | Event Title | Event End Date | |
|---|---|---|---|---|---|
| 0 | LSEG.L | 2026-02-28 | Self Tender/Repurchase - Upcoming | Buyback: London Stock Exchange Group / US$1.3B | 2026-02-28 |
| 1 | LSEG.L | 2026-04-16 | ExDividends | LSE.DEU Final Cash Dividend of gross GBP 1.03 ... | 2026-04-16 |
| 2 | LSEG.L | 2026-04-16 | ExDividends | LSEGGBP.xbo Final Cash Dividend of gross GBP 1... | 2026-04-16 |
| 3 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.EDv Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 4 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.TQ Final Cash Dividend of gross GBP 1.03... | 2026-04-16 |
| 5 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.BS Final Cash Dividend of gross GBP 1.03... | 2026-04-16 |
| 6 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.ED Final Cash Dividend of gross GBP 1.03... | 2026-04-16 |
| 7 | LSEG.L | 2026-04-16 | ExDividends | LSE.xt Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 8 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.AQX Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 9 | LSEG.L | 2026-04-16 | ExDividends | LSE.TG Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 10 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.TRE Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 11 | LSEG.L | 2026-04-16 | ExDividends | LSEl.ICEM Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 12 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.EDM Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 13 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.TRU Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 14 | LSEG.L | 2026-04-16 | ExDividends | LSE.HA Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 15 | LSEG.L | 2026-04-16 | ExDividends | LSE.BN Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 16 | LSEG.L | 2026-04-16 | ExDividends | LSE.F Final Cash Dividend of gross GBP 1.03 pa... | 2026-04-16 |
| 17 | LSEG.L | 2026-04-16 | ExDividends | LSE.MU Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 18 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.CHI Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 19 | LSEG.L | 2026-04-16 | ExDividends | LSE.SG Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 20 | LSEG.L | 2026-04-16 | ExDividends | LSEG.L Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 21 | LSEG.L | 2026-04-16 | ExDividends | LSE.D Final Cash Dividend of gross GBP 1.03 pa... | 2026-04-16 |
| 22 | LSEG.L | 2026-04-16 | ExDividends | LSE.LAS Final Cash Dividend of gross GBP 1.03 ... | 2026-04-16 |
| 23 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.TWEM Final Cash Dividend of gross GBP 1.... | 2026-04-16 |
| 24 | LSEG.L | 2026-04-16 | ExDividends | LSEGl.STp Final Cash Dividend of gross GBP 1.0... | 2026-04-16 |
| 25 | LSEG.L | 2026-04-16 | ExDividends | LSE.DE Final Cash Dividend of gross GBP 1.03 p... | 2026-04-16 |
| 26 | LSEG.L | 2026-04-16 | ExDividends | LSE.H Final Cash Dividend of gross GBP 1.03 pa... | 2026-04-16 |
| 27 | LSEG.L | 2026-04-17 | ExDividends | LDNXF.PQ Final Cash Dividend of gross GBP 1.03... | 2026-04-17 |
| 28 | LSEG.L | 2026-04-17 | ExDividends | LDNXF.PK Final Cash Dividend of gross GBP 1.03... | 2026-04-17 |
| 29 | LSEG.L | 2026-04-23 | SalesAndTradingStatementReleases | Q1 2026 London Stock Exchange Group PLC Tradin... | 2026-04-23 |
| 30 | LSEG.L | 2026-04-23 | ShareholderAndAnnualMeetings | London Stock Exchange Group PLC Annual Shareho... | 2026-04-23 |
Ownership
The Ownership tab in LSEG Workspace provides a detailed view of a company’s shareholder base, including major holders, institutional ownership, and insider positions. It also offers tools for analyzing shareholder peers, tracking regulatory filings such as UK register and RNS updates, and reviewing equity and short‑position data. These insights help users understand ownership concentration, investor behavior, and shifts in market positioning.
Ownership content is exposed as TR.* fundamentals within the library’s Fundamental & Reference set. You call these fields with ld.get_data and ld.get_history, supplying parameters like date (or date range), holder type, and currency/scale. Use the Data Item Browser (DIB) inside Workspace to find the exact TR. mnemonics and valid parameters before you query.
This code pulls recent ownership records for LSEG.L (including investor PermID, date, and held value), then extracts the unique investor IDs from that result. It makes a second query to fetch each investor’s common name and renames columns so IDs and names can be matched consistently. Finally, it merges those names back into the original ownership table.
df = ld.get_data(
universe=['LSEG.L'],
fields=[
'TR.SharesheldValue.investorpermid',
'TR.SharesheldValue.date',
'TR.SharesheldValue'
],
parameters={'Scale': '6', 'EndNum': 20}
)
investor_ids = df['Investor Perm Id'].dropna().astype(str).unique().tolist()
df_names = ld.get_data(
universe=investor_ids,
fields=['TR.CommonName']
)
df_names = df_names.rename(columns={
'Instrument': 'Investor Perm Id',
'Company Common Name': 'Company Name'
})
df = df.assign(**{'Investor Perm Id': df['Investor Perm Id'].astype(str)}).merge(
df_names[['Investor Perm Id', 'Company Name']],
on='Investor Perm Id',
how='left'
)
df
| Instrument | Investor Perm Id | Date | Holdings Value Held | Company Name | |
|---|---|---|---|---|---|
| 0 | LSEG.L | 5000009556 | 2025-02-26 | 4704.406539 | Qatar Investment Authority |
| 1 | LSEG.L | 5000025607 | 2025-02-26 | 4427.602927 | Blackrock Investment Management (UK) Ltd |
| 2 | LSEG.L | 4297954495 | 2025-02-26 | 3883.877379 | Capital World Investors |
| 3 | LSEG.L | 4295907168 | 2025-02-26 | 3262.444309 | Microsoft Corp |
| 4 | LSEG.L | 5000004423 | 2025-02-26 | 3092.649165 | Lindsell Train Ltd |
| 5 | LSEG.L | 4297651992 | 2025-10-23 | 1999.803864 | Vanguard Group Inc |
| 6 | LSEG.L | 4296334294 | 2026-02-01 | 1392.564266 | Massachusetts Financial Services Co |
| 7 | LSEG.L | 4296477482 | 2026-02-01 | 1391.654887 | Blackrock Institutional Trust Co NA |
| 8 | LSEG.L | 5000667881 | 2026-02-01 | 1296.13521 | Norges Bank Investment Management |
| 9 | LSEG.L | 5000650246 | 2026-02-01 | 717.219763 | BlackRock Advisors (UK) Ltd |
| 10 | LSEG.L | 5000064072 | 2025-10-23 | 734.622087 | Ninety One UK Ltd |
| 11 | LSEG.L | 5037588919 | 2025-10-23 | 734.188581 | Fidelity Management & Research Company LLC |
| 12 | LSEG.L | 5000057223 | 2025-10-17 | 557.768442 | Invesco Asset Management Japan Ltd |
| 13 | LSEG.L | 4295955751 | 2026-02-01 | 464.575064 | Legal & General Investment Management Ltd |
| 14 | LSEG.L | 4297836130 | 2026-02-01 | 401.271113 | State Street Global Advisors Inc |
| 15 | LSEG.L | 4296030857 | 2025-10-23 | 450.987943 | Cantillon Capital Management LLC |
| 16 | LSEG.L | 4297954501 | 2025-10-23 | 448.210631 | Capital Research Global Investors |
| 17 | LSEG.L | 5058598418 | 2025-10-17 | 425.727663 | Vanguard Global Advisers LLC |
| 18 | LSEG.L | 5000058340 | 2025-10-23 | 400.634049 | Schroder Investment Management North America Inc |
| 19 | LSEG.L | 4296775703 | 2026-02-01 | 317.331062 | DWS Investment GmbH |
Debt & Credit
The Debt & Credit tab in LSEG Workspace provides access to tools for analyzing a company’s debt profile and credit risk. Under the Debt section, users can view debt structure, issuer ratings, issuer curves, and information on exchangeables and convertible notes. The Credit section offers various credit‑risk analytics, including combined credit risk, text‑mining‑based credit insights, structural credit models, and smart‑ratio credit risk measures.
Using the LSEG Data Library for Python, you can retrieve data shown in the Debt & Credit tab of LSEG Workspace by calling the library’s Search API, Fundamental & Reference data, and Bond (FinancialContracts) endpoints. For example, debt structure information can be replicated by searching for an issuer’s bonds and then retrieving details such as maturity, coupon rate, and outstanding amounts. Issuer ratings, yield‑curve data, and credit‑risk metrics can also be accessed through standard ld.get_data calls using the appropriate fundamental fields.
This code first retrieves the organization identifier for
LSEG.L, then use it to search for active bonds issued by this organization identifier. The query limits output to 100 rows.
org_df = ld.get_data(
universe=['LSEG.L'],
fields=['TR.OrganizationID']
)
org_id = org_df['Organization PermID'].iloc[0]
select_fields = [
'ISIN',
'DTSubjectName',
'RIC',
'IssueDate',
'Currency',
'RCSCurrencyLeaf',
'FaceIssuedTotal',
'EOMAmountOutstanding',
'NextCallDate',
'CouponRate',
'IsPerpetualSecurity',
'MaturityDate',
'CdsSeniorityEquivalentDescription'
]
bonds_df = ld.discovery.search(
view=ld.discovery.Views.GOV_CORP_INSTRUMENTS,
filter=(
f"ParentOAPermID eq '{org_id}' and IsActive eq true "
"and not(AssetStatus in ('MAT'))"
),
select=', '.join(select_fields),
top=100
)
bonds_df
| ISIN | DTSubjectName | RIC | IssueDate | Currency | RCSCurrencyLeaf | FaceIssuedTotal | EOMAmountOutstanding | NextCallDate | CouponRate | IsPerpetualSecurity | MaturityDate | CdsSeniorityEquivalentDescription | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | US50220WC227 | LSEG US Fin Corp | 50220WC22= | 2026-02-09 | USD | US Dollar | <NA> | <NA> | NaT | 0.0 | False | 2026-03-02 | Senior Unsecured |
| 1 | XS3289879705 | LSEG Netherlands BV | GB328987970=RRPS | 2026-02-02 | EUR | Euro | 50000000 | 50000000 | NaT | 0.0 | False | 2026-03-02 | Senior Unsecured |
| 2 | US50220WC300 | LSEG US Fin Corp | 50220WC30= | 2026-02-17 | USD | US Dollar | <NA> | <NA> | NaT | 0.0 | False | 2026-03-03 | Senior Unsecured |
| 3 | XS3291822313 | LSEG Netherlands BV | GB329182231=RRPS | 2026-02-04 | EUR | Euro | 30000000 | <NA> | NaT | 0.0 | False | 2026-03-04 | Senior Unsecured |
| 4 | US50220WC482 | LSEG US Fin Corp | 50220WC48= | 2026-02-18 | USD | US Dollar | <NA> | <NA> | NaT | 0.0 | False | 2026-03-04 | Senior Unsecured |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 64 | US50220WCS52 | LSEG US Fin Corp | <NA> | 2026-02-26 | USD | US Dollar | <NA> | <NA> | NaT | 0.0 | False | 2026-03-26 | Senior Unsecured |
| 65 | XS3309692708 | LSEG Netherlands BV | <NA> | 2026-02-27 | EUR | Euro | 17000000 | <NA> | NaT | 0.0 | False | 2026-03-30 | Senior Unsecured |
| 66 | XS3304270518 | LSEG Finance PLC | <NA> | 2026-02-19 | GBP | British Pound | 51000000 | <NA> | NaT | 0.0 | False | 2026-05-19 | Senior Unsecured |
| 67 | XS3304268538 | LSEG Finance PLC | <NA> | 2026-02-19 | EUR | Euro | 51000000 | <NA> | NaT | 0.0 | False | 2026-05-19 | Senior Unsecured |
| 68 | XS3273860000 | LSEG Finance PLC | <NA> | 2026-01-13 | GBP | British Pound | 10000000 | <NA> | NaT | 0.0 | False | 2026-06-15 | Senior Unsecured |
69 rows × 13 columns
This code requests issuer credit-rating data for LSEG.L using ld.get_data.
ld.get_data(
universe=['LSEG.L'],
fields =['TR.IssuerRating','TR.IssuerRating.RatingSourceDescription'],
parameters={'Top':10}
)
| Instrument | Issuer Rating | Rating Source Description | |
|---|---|---|---|
| 0 | LSEG.L | P-2 | Moody's Commercial Paper |
| 1 | LSEG.L | A3 | Moody's Long-term Issuer Rating |
| 2 | LSEG.L | (P)A3 | Moody's Long-term Senior Unsecured MTN Rating |
| 3 | LSEG.L | A3 | Moody's Senior Unsecured |
| 4 | LSEG.L | Baa1 | Moody's Long-term Issuer Rating |
| 5 | LSEG.L | (P)Baa1 | Moody's Long-term Senior Unsecured MTN Rating |
| 6 | LSEG.L | Baa1 | Moody's Senior Unsecured |
| 7 | LSEG.L | (P)Baa2 | Moody's Long-term Senior Unsecured MTN Rating |
| 8 | LSEG.L | Baa2 | Moody's Senior Unsecured |
| 9 | LSEG.L | WR | Moody's Corporate Family Rating |
Peers & Valuation
The Peers & Valuation tab provides quick access to tools for comparing a company with its competitors and evaluating its valuation. The Peers section covers peer, sector, and index comparisons, along with stock and value‑chain analysis. The Valuation section offers models for relative valuation, intrinsic value, momentum factors, price targets, and alpha modeling.
You can ues the Peers class in LSEG Data Library for Python to retrieve the RICs of the peer companies. Then, use those RICs with the ld.get_data method to pull valuation, fundamentals, and comparison fields for those universes. The valuation tools in Workspace (e.g., relative valuation, intrinsic valuation, momentum, and price‑target models) are simply combinations of standard TR.* fundamental and analyst‑estimate fields, which the library exposes directly. To find the exact field codes needed for each model, you use the Data Item Browser (DIB) within Workspace.
This code identifies a set of peer companies for LSEG and then retrieves key valuation measures for those peers, such as earnings multiples, sales multiples, cash-flow multiples, and dividend yield. The output gives a quick cross-company comparison that helps assess relative valuation within the peer group.
from lseg.data.discovery import Peers
peers = Peers('LSEG.L')
ld.get_data(
universe=list(peers),
fields= [
'TR.PE',
'TR.PtoEPSMeanEst',
'TR.PriceToSalesPerShare',
'TR.EVToEBITDA',
'TR.PricetoCFPerShare',
'TR.PriceToBVPerShare',
'TR.DividendYield'],
parameters={'Period': 'FY0'})
C:\Users\jphuriph\AppData\Roaming\Python\Python312\site-packages\lseg\data_tools_dataframe.py:192:FutureWarning: Downcasting behavior in replace is deprecated and will be removed in a future version. To retain the old behavior, explicitly call result.infer_objects(copy=False). To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True)
C:\Users\jphuriph\AppData\Roaming\Python\Python312\site-packages\lseg\data_tools_dataframe.py:192:FutureWarning: Downcasting behavior in replace is deprecated and will be removed in a future version. To retain the old behavior, explicitly call result.infer_objects(copy=False). To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True)
| Instrument | P/E (Daily Time Series Ratio) | Price / EPS (Mean Estimate) | Price To Sales Per Share (Daily Time Series Ratio) | Enterprise Value To EBITDA (Daily Time Series Ratio) | Price To Cash Flow Per Share (Daily Time Series Ratio) | Price To Book Value Per Share (Daily Time Series Ratio) | Dividend yield | |
|---|---|---|---|---|---|---|---|---|
| 0 | DB1Gn.DE | 20.804209 | 20.380728 | 5.689988 | 14.386815 | 17.504024 | 3.866054 | 1.854305 |
| 1 | ENX.PA | 21.963893 | 19.345446 | 7.810381 | 14.363954 | 17.49233 | 3.086011 | 2.116788 |
| 2 | PGHN.S | 19.116955 | 21.261394 | 10.478382 | 17.862033 | 30.450665 | 13.526291 | 4.798903 |
| 3 | AMUN.PA | 10.516796 | 12.619235 | 5.026884 | 9.369797 | 10.563742 | 1.383223 | 5.22113 |
| 4 | DWSG.DE | 15.96817 | 13.385631 | 4.367066 | 10.679537 | 16.981664 | 1.732873 | 4.983389 |
| 5 | ABDN.L | 11.95303 | 17.718327 | 2.986712 | 11.083284 | 13.987065 | 0.779346 | 6.765524 |
| 6 | EQTAB.ST | 43.203077 | 24.737264 | 12.521809 | 21.475162 | 76.674239 | 4.198438 | 1.635596 |
| 7 | ICGIN.L | 8.448005 | 12.749122 | 4.401468 | 13.959839 | 8.459375 | 1.910907 | 4.909831 |
| 8 | EMG.L | 22.791238 | 15.743293 | 3.149425 | 13.298618 | 12.685183 | 2.825236 | 4.789779 |
| 9 | CVC.AS | 17.768107 | 18.348214 | 7.399323 | 12.08232 | 21.677272 | 10.803244 | 3.62412 |
| 10 | QLT.L | <NA> | 21.608624 | 0.596904 | 0.219364 | 0.490913 | 1.961559 | 3.152008 |
| 11 | SDR.L | 17.435806 | 17.272733 | 2.903611 | 7.724024 | 10.322362 | 2.118215 | 3.668942 |
| 12 | AJBA.L | 16.967848 | 17.498575 | 5.438894 | 6.437124 | 19.988855 | 8.056748 | 3.284924 |
| 13 | III.L | 5.100943 | 5.781422 | 5.062384 | 5.31794 | 40.395382 | 1.151525 | 2.414425 |
| 14 | FBK.MI | 19.252237 | 19.871883 | 18.327977 | 11.354656 | 80.332273 | 4.873606 | 3.882064 |
| 15 | SJP.L | 13.962463 | 16.307743 | 0.24125 | 1.147922 | 6.809394 | 4.913606 | 1.305767 |
| 16 | BPTB.L | 41.924959 | 15.412442 | 4.032759 | 16.779198 | 111.619569 | 2.218644 | 3.618677 |
| 17 | SAVE.ST | 24.250978 | 24.176759 | 10.860092 | 35.712891 | 5.715701 | 8.507413 | 3.000698 |
| 18 | AVANZ.ST | 19.792779 | 19.792114 | 9.072683 | 44.193965 | 1.640193 | 6.561945 | 3.867152 |
| 19 | TKOO.PA | 18.067857 | 16.963044 | 12.977512 | 15.978158 | <NA> | 1.025434 | 4.343105 |
| 20 | ASHM.L | 14.49538 | 27.131567 | 11.172945 | 19.630403 | 39.966774 | 2.216349 | 7.041667 |
| 21 | ABNd.AS | 11.7885 | 11.251873 | 1.232053 | 17.730958 | <NA> | 0.880131 | 5.326877 |
| 22 | CBKG.DE | 17.429215 | 14.776909 | 2.059882 | -4.250545 | <NA> | 1.182169 | 3.057254 |
| 23 | KBC.BR | 13.236473 | 13.448948 | 2.770937 | 3.704563 | 10.663928 | 1.636315 | 4.43093 |
| 24 | BAER.S | 17.709646 | 16.302354 | 7.413314 | 18.168003 | 10.998131 | 1.865557 | 3.952569 |
| 25 | RAT.L | 38.857143 | 13.286543 | 1.977512 | 15.4361 | 1.422091 | 1.430925 | 4.253394 |
| 26 | FTKn.DE | 25.061413 | 20.094037 | 6.457954 | 18.92171 | 2.353274 | 3.980866 | 0.990099 |
| 27 | JUP.L | 18.087183 | 13.520574 | 2.700746 | 8.663358 | 18.207331 | 1.228919 | 2.261048 |
| 28 | ALLFG.AS | 6.735241 | 21.310039 | 13.101323 | 3.524247 | 3.63144 | 2.603418 | 1.584039 |
| 29 | ANTIN.PA | 14.477049 | 14.114863 | 5.617186 | 8.269429 | 13.714715 | 3.689455 | 7.185629 |
| 30 | INGA.AS | 11.778302 | 12.085455 | 4.967041 | 5.069336 | <NA> | 1.458266 | 5.038046 |
| 31 | UBSG.S | 17.703063 | 16.334593 | 4.068811 | 6.731127 | 32.493634 | 1.430989 | 3.404519 |
| 32 | CAGR.PA | 8.727625 | 8.784729 | 1.044162 | -11.635536 | 3.027971 | 0.741164 | 5.939553 |
| 33 | SOGN.PA | 10.97151 | 11.633728 | 1.297383 | -2.097234 | <NA> | 0.81342 | 2.138114 |
| 34 | SEBa.ST | 12.693053 | 12.50427 | 3.424136 | 22.391511 | 11.5222 | 1.668417 | 4.340056 |
| 35 | DANSKE.CO | 11.93153 | 12.247228 | 3.704874 | 24.948069 | 12.309283 | 1.495826 | 6.833083 |
| 36 | DNB.OL | 10.676416 | 10.917133 | 2.537737 | 19.385176 | 6.179841 | 1.513159 | 5.928854 |
| 37 | SWEDa.ST | 12.072579 | 12.468304 | 4.736029 | 15.665031 | 6.799239 | 1.742592 | 5.842857 |
| 38 | EXPN.L | 25.44999 | 23.868085 | 4.304044 | 14.165847 | 16.087146 | 6.378309 | 1.706695 |
| 39 | SHBa.ST | 12.011514 | 12.39957 | 2.227511 | 17.185272 | <NA> | 1.44565 | 12.02336 |
| 40 | BMED.MI | 10.949536 | 12.624407 | 12.672254 | 8.519805 | 11.891023 | 3.023088 | 6.692057 |
| 41 | CABK.MC | 12.776198 | 13.24005 | 4.149613 | 4.476522 | 16.956014 | 1.937194 | 4.697041 |
| 42 | FLOW.AS | 8.778523 | 8.659384 | 2.486515 | 21.75694 | 37.265532 | 1.388411 | 0.0 |
| 43 | SQN.S | 20.275113 | 20.735014 | 8.206292 | 28.510108 | 2.86332 | 5.163295 | 1.452785 |
| 44 | NWG.L | 9.307773 | 9.809764 | 1.948759 | 7.832492 | 7.081336 | 1.297871 | 5.176808 |
| 45 | EURA.PA | <NA> | 94.389313 | 8.630757 | 64.763576 | 28.24794 | 0.519875 | 5.357865 |
| 46 | FSGF.L | 12.438635 | 12.996619 | 2.907137 | 7.678837 | 8.507973 | 5.394602 | 6.029056 |
| 47 | IHPI.L | 20.537329 | 19.475424 | 6.719413 | -287.242336 | 3.191772 | 4.684767 | 3.553459 |
| 48 | NDASE.ST | 11.969473 | 11.748056 | 3.293972 | 18.232782 | <NA> | 1.753833 | 5.695922 |
| 49 | LLOY.L | 15.13927 | 13.421197 | 2.789714 | 12.591285 | 10.82366 | 1.295862 | 3.479504 |
Derivatives
The Derivatives tab in LSEG Workspace provides quick access to key options, futures, and warrant data for a selected company or instrument. It includes views for the most traded options, a full options chain, all available futures contracts, and a warrant overview. These tools allow users to analyze market activity, derivative pricing, and contract structures in one place.
Using the LSEG Data Library for Python, you can the Search API to search for futures, options, and warrant that are issued under a specific RIC and then tuse the retrieved RICs to request required by through the ld.get_data method using the appropriate fields.
This code searches for active derivative futures linked to LSEG.L and then uses the returned RICs to retrieve essential quote and contract information, including bid/ask prices, last trade, open/high/low levels, settlement values, and expiry dates. The search filter can be adjusted to retrieve other asset classes as needed.
futures = ld.discovery.search(
view=ld.discovery.Views.EQUITY_QUOTES,
filter=("RCSAssetCategoryLeaf eq 'Equity Future' and UnderlyingQuoteRIC eq 'LSEG.L' "
"and AssetState eq 'AC' and AssetType eq 'DERIVATIVE' "
"and IsChain eq false and AssetCategory eq 'EIF' and DisplayType eq 'FQUOTE'"),
top=100)
ld.get_data(
universe=futures['RIC'].tolist(),
fields=['DSPLY_NAME','CONTR_MNTH','TRDPRC_1','BID','ASK','SETTLE','OPEN_PRC','HIGH_1','LOW_1','HST_CLOSE','EXPIR_DATE']
)
C:\Users\jphuriph\AppData\Roaming\Python\Python312\site-packages\lseg\data_tools_dataframe.py:177:FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True)
| Instrument | DSPLY_NAME | CONTR_MNTH | TRDPRC_1 | BID | ASK | SETTLE | OPEN_PRC | HIGH_1 | LOW_1 | HST_CLOSE | EXPIR_DATE | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | LSEFK26 | LSE MAY6/d | MAY6 | <NA> | <NA> | <NA> | 8466.3505 | <NA> | <NA> | <NA> | 8466.3505 | 2026-05-15 |
| 1 | TLSEH27 | LSE MAR7/d | MAR7 | <NA> | <NA> | <NA> | 29.0 | <NA> | <NA> | <NA> | 29.0 | 2027-03-19 |
| 2 | LSEFM26 | LSE JUN6/d | JUN6 | <NA> | <NA> | <NA> | 8497.4891 | <NA> | <NA> | <NA> | 8497.4891 | 2026-06-19 |
| 3 | LSEFJ26 | LSE APR6/d | APR6 | <NA> | <NA> | <NA> | 8441.3428 | <NA> | <NA> | <NA> | 8441.3428 | 2026-04-17 |
| 4 | TLSEZ27 | LSE DEC7/d | DEC7 | <NA> | <NA> | <NA> | 31.0 | <NA> | <NA> | <NA> | 31.0 | 2027-12-17 |
| 5 | LSEFZ28 | LSE DEC8/d | DEC8 | <NA> | <NA> | <NA> | 8969.3814 | <NA> | <NA> | <NA> | 8969.3814 | 2028-12-15 |
| 6 | TLSEM26 | LSE JUN6/d | JUN6 | <NA> | <NA> | <NA> | 24.0 | <NA> | <NA> | <NA> | 24.0 | 2026-06-19 |
| 7 | LSEGLFDCN1726 | London Stock 1/d | JUL6 | <NA> | <NA> | <NA> | 8615.8 | <NA> | <NA> | <NA> | 8615.8 | 2026-07-17 |
| 8 | LSEGLFDCJ1726 | London Stock 1/d | APR6 | <NA> | <NA> | <NA> | 8542.3 | <NA> | <NA> | <NA> | 8542.3 | 2026-04-17 |
| 9 | LSEGLFDCH2026 | London Stock 2/d | MAR6 | <NA> | <NA> | <NA> | 8518.92 | <NA> | <NA> | <NA> | 8518.92 | 2026-03-20 |
| 10 | LSEFG27 | LSE FEB7/d | FEB7 | <NA> | <NA> | <NA> | 8656.4898 | <NA> | <NA> | <NA> | 8656.4898 | 2027-02-19 |
| 11 | LSEGLFDCM1926 | London Stock 1/d | JUN6 | <NA> | <NA> | <NA> | 8593.4 | <NA> | <NA> | <NA> | 8593.4 | 2026-06-19 |
| 12 | LSEFX26 | LSE NOV6/d | NOV6 | <NA> | <NA> | <NA> | 8582.6974 | <NA> | <NA> | <NA> | 8582.6974 | 2026-11-20 |
| 13 | LSEFN26 | LSE JUL6/d | JUL6 | <NA> | <NA> | <NA> | 8522.2369 | <NA> | <NA> | <NA> | 8522.2369 | 2026-07-17 |
| 14 | LSEGLFDCU1826 | London Stock 1/d | SEP6 | <NA> | <NA> | <NA> | 8665.59 | <NA> | <NA> | <NA> | 8665.59 | 2026-09-18 |
| 15 | LSEFH27 | LSE MAR7/d | MAR7 | <NA> | <NA> | <NA> | 8680.0277 | <NA> | <NA> | <NA> | 8680.0277 | 2027-03-19 |
| 16 | LSEFQ26 | LSE AUG6/d | AUG6 | <NA> | <NA> | <NA> | 8553.1638 | <NA> | <NA> | <NA> | 8553.1638 | 2026-08-21 |
| 17 | LSEFU26 | LSE SEP6/d | SEP6 | <NA> | <NA> | <NA> | 8530.0795 | <NA> | <NA> | <NA> | 8530.0795 | 2026-09-18 |
| 18 | LSEFZ27 | LSE DEC7/d | DEC7 | <NA> | <NA> | <NA> | 8776.6371 | <NA> | <NA> | <NA> | 8776.6371 | 2027-12-17 |
| 19 | LSEFZ26 | LSE DEC6/d | DEC6 | <NA> | <NA> | <NA> | 8605.6839 | <NA> | <NA> | <NA> | 8605.6839 | 2026-12-18 |
| 20 | LSEGLFDCQ2126 | London Stock 2/d | AUG6 | <NA> | <NA> | <NA> | 8643.57 | <NA> | <NA> | <NA> | 8643.57 | 2026-08-21 |
| 21 | TLSEU26 | LSE SEP6/d | SEP6 | <NA> | <NA> | <NA> | 32.5 | <NA> | <NA> | <NA> | 32.5 | 2026-09-18 |
| 22 | TLSEH26 | LSE MAR6/d | MAR6 | <NA> | <NA> | <NA> | -28.0 | <NA> | <NA> | <NA> | -28.0 | 2026-03-20 |
| 23 | TLSEJ26 | LSE APR6/d | APR6 | <NA> | <NA> | <NA> | 4.0 | <NA> | <NA> | <NA> | 4.0 | 2026-04-17 |
| 24 | LSEFH26 | LSE MAR6/d | MAR6 | <NA> | <NA> | <NA> | 8519.3412 | <NA> | <NA> | <NA> | 8519.3412 | 2026-03-20 |
| 25 | LSEFF27 | LSE JAN7/d | JAN7 | <NA> | <NA> | <NA> | 8628.4214 | <NA> | <NA> | <NA> | 8628.4214 | 2027-01-15 |
| 26 | TLSEM27 | LSE JUN7/d | JUN7 | <NA> | <NA> | <NA> | 30.5 | <NA> | <NA> | <NA> | 30.5 | 2027-06-18 |
| 27 | TLSEZ26 | LSE DEC6/d | DEC6 | <NA> | <NA> | <NA> | 31.0 | <NA> | <NA> | <NA> | 31.0 | 2026-12-18 |
| 28 | TLSEK26 | LSE MAY6/d | MAY6 | <NA> | <NA> | <NA> | 14.0 | <NA> | <NA> | <NA> | 14.0 | 2026-05-15 |
| 29 | LSEFV26 | LSE OCT6/d | OCT6 | <NA> | <NA> | <NA> | 8553.6177 | <NA> | <NA> | <NA> | 8553.6177 | 2026-10-16 |
| 30 | LSEGLFDCK1526 | London Stock 1/d | MAY6 | <NA> | <NA> | <NA> | 8565.1 | <NA> | <NA> | <NA> | 8565.1 | 2026-05-15 |
| 31 | LSEGIGH6 | IDX LSEGI MAR6/d | MAR6 | <NA> | <NA> | <NA> | 1684.98 | <NA> | <NA> | <NA> | 1684.98 | 2026-03-16 |
| 32 | LSEGIDH6 | IDX LSEGI MAR6/d | MAR6 | <NA> | <NA> | <NA> | 1684.98 | <NA> | <NA> | <NA> | 1684.98 | 2026-03-16 |
| 33 | LSEGIDM6 | IDX LSEGI JUN6/d | JUN6 | <NA> | <NA> | <NA> | 1711.88 | <NA> | <NA> | <NA> | 1711.88 | 2026-06-12 |
| 34 | LSEGIGM6 | IDX LSEGI JUN6/d | JUN6 | <NA> | <NA> | <NA> | 1689.53 | <NA> | <NA> | <NA> | 1689.53 | 2026-06-12 |
| 35 | LSEGIDU6 | IDX LSEGI SEP6/d | SEP6 | <NA> | <NA> | <NA> | 1740.39 | <NA> | <NA> | <NA> | 1740.39 | 2026-09-14 |
| 36 | LSEGIGU6 | IDX LSEGI SEP6/d | SEP6 | <NA> | <NA> | <NA> | 1707.16 | <NA> | <NA> | <NA> | 1707.16 | 2026-09-14 |
| 37 | LSEGIGZ6 | IDX LSEGI DEC6/d | DEC6 | <NA> | <NA> | <NA> | 1734.05 | <NA> | <NA> | <NA> | 1734.05 | 2026-12-14 |
| 38 | LSEGIDZ6 | IDX LSEGI DEC6/d | DEC6 | <NA> | <NA> | <NA> | 1767.8 | <NA> | <NA> | <NA> | 1767.8 | 2026-12-14 |
| 39 | LSEGIGH7 | IDX LSEGI MAR7/d | MAR7 | <NA> | <NA> | <NA> | 1760.92 | <NA> | <NA> | <NA> | 1760.92 | 2027-03-15 |
| 40 | LSEGIDH7 | IDX LSEGI MAR7/d | MAR7 | <NA> | <NA> | <NA> | 1795.2 | <NA> | <NA> | <NA> | 1795.2 | 2027-03-15 |
Filings
The Filings tab in LSEG Workspace provides streamlined access to key company filing documents, allowing users to quickly view, track, and analyze regulatory disclosures. It serves as a centralized hub for navigating important corporate filings and related updates.
Using the LSEG Data Library for Python, you can leverage the Filings API to access LSEG’s extensive global repository of corporate disclosures—including Global Filings and EDGAR (U.S. SEC) documents—through the dedicated filings class. This interface provides a streamlined way to search, retrieve, and analyze filing metadata and documents directly from Python, enabling seamless integration into research and analytics workflows.
This following code looks up IBM’s issuer identifier and then queries the EDGAR source for the company’s most recent 10‑Q filings, limited to a small number of results. It displays a preview of the returned filing records so you can quickly verify what was found. Finally, it downloads the first filing document from that result set.
Note: To retrieve filing documents, the account must be entitled to the Filings APIs.
from lseg.data.content import symbol_conversion
from lseg.data.content import filings
symbol_resp = symbol_conversion.Definition("IBM.N").get_data()
permID = symbol_resp.data.df['IssuerOAPermID'].iloc[0]
filings_resp = filings.search.Definition(
org_id=permID,
feed="Edgar",
form_type="10-Q",
limit=5
).get_data()
display(filings_resp.data.df.head(5))
filings_resp.data.files[0].download()
| DocumentTitle | Filename | MimeType | Dcn | DocId | FinancialFilingId | |
|---|---|---|---|---|---|---|
| 0 | QUARTERLY REPORT PURSUANT TO SECTION 13 or 15(... | 20251023_4295904307_97689768787_1_12_10-Q_raw.pdf | application/pdf | 251413350 | 85090164 | 97689768787 |
| 1 | QUARTERLY REPORT PURSUANT TO SECTION 13 or 15(... | 20251023_4295904307_97689768787_1_12_10-Q_with... | text/html | 251413350 | 85090164 | 97689768787 |
| 2 | QUARTERLY REPORT PURSUANT TO SECTION 13 or 15(... | 20251023_4295904307_97689768787_1_12_10-Q_diss... | text/plain | 251413350 | 85090164 | 97689768787 |
| 3 | QUARTERLY REPORT PURSUANT TO SECTION 13 or 15(... | 20251023_4295904307_97689768787_1_12_10-Q_delt... | application/pdf | 251413350 | 85090164 | 97689768787 |
| 4 | QUARTERLY REPORT PURSUANT TO SECTION 13 or 15(... | 20251023_4295904307_97689768787_1_12_10-Q_xbrl... | application/zip | 251413350 | 85090164 | 97689768787 |
<lseg.data.content.filings._retrieval_data_provider.DownloadAllFileResponse at 0x1cde13e5430>
Summary
This chapter explains how to find, retrieve, and analyze equity-market data using LSEG Workspace tools and the LSEG Data Library for Python. It covers practical workflows for instrument discovery, quote retrieval, index analysis, news access, streaming data, delayed data, historical data, and equity-related reference views.
Key topics covered
- Data discovery tools: Global Search, Advanced Search, Screener, RIC Search, Search APIs, and Data Item Browser.
- RIC structure and conventions: Exchange identifiers, numeric roots, brokerage characters, and case sensitivity.
- Equity and index workflows: Full quotes, chain constituents, index weightings, and leavers/joiners.
- News and research content: Company headlines, story retrieval, and top-news hierarchy access.
- Real-time and delayed data: Streaming quotes, delayed prefixes, and delayed chain usage.
- Market-depth and tape data: Order-book/market-maker streams and times-and-sales retrieval.
- Historical pricing: Interday, intraday, and tick/tas history with interval options.
- Equity Views mapping: Overview, financials, ESG, governance, events, ownership, debt/credit, peers/valuation, derivatives, and filings.
Practical outcomes
- Build reliable searches for equities, indices, and related instruments.
- Pull current, streaming, delayed, and historical datasets programmatically.
- Use TR fields and view metadata effectively for analytics and reporting.
- Reproduce key Workspace views in Python-based workflows.
Takeaway
By the end of the page, you have an end-to-end guide for navigating equity content in LSEG ecosystems—from finding the right instruments to extracting real-time, reference, and filings data for analysis.