Skip to main content

Chapter 3 – The structure of LSEG data

import warnings
warnings.filterwarnings('ignore')

To handle the complexity and diversity of financial markets and their instrument types, LSEG has designed a flexible data structure that supports all asset classes.

All data is identified by codes, so to find a piece of information, you need to know the right code. All codes in this guide appear in a box like this: LSEG.

In this guide, the Enter (Return) key on your keyboard is the default.

What are RICs and pages?

There are two main types of code you need to know:

  • RICs – Instrument Codes that identify individual financial instruments.

    • Example: the spot rate of the Swiss franc is CHF=.
    • The code for Microsoft stock on NASDAQ is MSFT.O.
  • Pages – full pages of information provided by LSEG or by other contributors to the LSEG network.

    • They can include text information or sets of different prices.
    • Example: FXFX is the code for all available spot rates.

You can open RIC and Page data in the Workspace by typing the instrument code or name in the Workspace Search Bar.

open data

The Workspace then displays the Summary Overview (SOV) app for the code or name you entered. You can access all instrument data from this overview page.

open data

Alternatively, you can open the Quote (Q) app to view Quote data only by pressing the F4 button.

open_quote

From there, enter the RIC code, Page code, or instrument name to retrieve the Quote data.

open_quote

All of the RIC and page data shown in this chapter — and throughout this guide — can be retrieved programmatically using the Data Library for Python. The library provides a simple, unified interface for accessing LSEG content, including real-time and historical pricing, fundamental and reference data, news, and more — all from within your Python environment or Jupyter Notebook.

To get started with the Data Library for Python, refer to the following resources:

The first step is importing the library

import lseg.data as ld 
import pandas as pd

Before we move on, I am expecting that you have open and log in to the LSEG Workspace Desktop application in the same machine that run this Jupyter Notebook.

Open the Data Library Session

Next, open the session with open_session() function.

ld.open_session()

Next, use the get_data method and input your interested RICs and Fields. This method allows you to retrieve pricing snapshots, as well as Fundamental and Reference data, through a single function call.

# Get BID and ASK fields for CHF= (Swiss Franc spot rate) and MSFT.O (Microsoft on NASDAQ)
df = ld.get_data(
universe=['CHF=', 'PTT.BK'],
fields=['BID', 'ASK','TR.CommonName']
)
df

InstrumentCompany Common NameBIDASK
0CHF=Swiss Franc Spot Sourced Worldwide0.79050.7908
1PTT.BKPTT PCL35.035.25

The get_data method's universe property also supports page RICs. For more details, see the Pages section below.

The get_data method is part of the library's Access layer, which provides the simplest way to retrieve the most commonly used data content. Other notable Access layer methods include get_history for pricing history, and get_headlines and get_story for news headlines and stories.

To learn more about the Access layer's capabilities and API interfaces, see the following resources:

When to use upper or lower case

LSEG Workspace allows pages and RICs to be entered in either upper- or lower-case.

There are exceptions: codes that consist of mixed upper- and lower-case letters — such as the continuation future FLGc1 — or RICs that contain brokerage characters — such as DTEGn.DE — must be entered using the exact syntax.

FLGc1

DTEGn.DE

Further information about brokerage characters and continuation futures is provided in the relevant market sections of this guide.

The Workspace application can detect certain input errors and apply corrections automatically, as shown below. However, the exact syntax should always be used when entering codes.

wrong input case

In contrast, RIC names are always case-sensitive when accessed via the Data Library. The RIC must be provided exactly as defined; an incorrect case will result in an error.

Historical data can be retrieved using the Data Library get_history method, as demonstrated below. This method supports pricing history, as well as Fundamental and Reference data.

The RIC name supplied to the universe property must follow the exact syntax described above.

# Get historical data for FLGc1 (ICE EUROPE (ICE) LONG GILT BOND FUTURE C1)
df_history = ld.get_history(
fields=['BID', 'ASK', 'OPEN_PRC', 'HIGH_1', 'LOW_1'],
universe='FLGc1',
interval='weekly',
count=20
)
df_history.head()
FLGc1BIDASKOPEN_PRCHIGH_1LOW_1
Date
2025-11-2893.2793.3192.3693.5392.18
2025-12-0592.892.8893.0993.3592.77
2025-12-1292.6692.792.4793.0992.18
2025-12-1992.5392.5992.9893.192.47
2025-12-2692.4892.7292.4992.7792.49

The retrieved historical data can be visualised using any Python plotting library, such as Matplotlib, Plotly, seaborn, or bokeh.

The following example demonstrates visualisation using the Matplotlib library.

import matplotlib.pyplot as plt

# Select only numeric columns from df_history to plot as line series
plot_df = df_history.select_dtypes(include='number').copy()

# Ensure the index is a proper datetime type for correct date formatting on x-axis
if not pd.api.types.is_datetime64_any_dtype(plot_df.index):
plot_df.index = pd.to_datetime(plot_df.index)

# Stop early if there is no numeric data available for plotting
if plot_df.empty:
raise ValueError('df_history has no numeric columns to plot.')

# Save the original datetime index labels before resetting
date_labels = [d.strftime('%Y-%m-%d') for d in plot_df.index]

# Reset index to integers so x-tick positions are 0, 1, 2, ...
# This avoids matplotlib date-float misalignment when setting custom tick labels
plot_df = plot_df.reset_index(drop=True)

# Create a multi-line chart for all available numeric history fields
fig, ax = plt.subplots(figsize=(12, 6))
plot_df.plot(ax=ax, linewidth=1.5)
ax.set_title('FLGc1 Historical Data')
ax.set_xlabel('Date')
ax.set_ylabel('Value')
ax.grid(True, alpha=0.3)

# Place one tick per data point and label each with the full date (year-month-day)
ax.set_xticks(range(len(date_labels)))
ax.set_xticklabels(date_labels, rotation=45, ha='right')

# Add legend and adjust layout so labels are fully visible
plt.legend(title='Field')
plt.tight_layout()
plt.show()

png

The same as Data Library get_data method. The RIC name in a universe property must be typed exactly that syntax too.

# Get Real-Time Data for  DTEGn.DE (DEUTSCHE TELEKOM AG)
df = ld.get_data(
universe=['DTEGn.DE'],
fields=['DSPLY_NAME','RDN_EXCHID','ACVOL_1','CLOSE_BID', 'CLOSE_ASK']
)
df

InstrumentDSPLY_NAMERDN_EXCHIDACVOL_1CLOSE_BIDCLOSE_ASK
0DTEGn.DEDT TELEKOM NGER<NA>31.2731.29

If you input the RICs or pages in a wrong syntax (or wrong cases), the Library always throws error as the following examples:

Example: ld.get_data

wrong case ric

Example: ld.get_history

wrong case ric

Instrument Codes (RICs)

Important note: RICs are protected by copyright, database rights and trademarks owned by LSEG. You are only allowed to use RICs in the manner and for the purposes specified in your agreement with LSEG. Unless you have agreed any additional uses of RICs with LSEG, this will essentially be only for the retrieval of LSEG data. If you have any questions about your rights to use RICs, please contact your LSEG sales representative.

The term RIC is used to describe the unique codes used by LSEG to identify a piece of LSEG data. They generally represent either:

  • One financial instrument, or
  • A group of related instruments.

These codes are also known as logical records, as they provide a structured means of capturing and displaying data on the LSEG network.

The information displayed when you enter a RIC depends on the type of instrument it defines. For example:

  • The display you get for a RIC on a stock traded on the London Stock Exchange is different from the display you get when you enter the RIC for a bond.
  • A bond display will show maturity date, coupon, price or yield.
  • A stock display will show bid, ask and last traded price.

Advantages of RICs

  • Structured coding (simplifies data manipulation).
  • Clearly identifiable.
  • Easily transferred into spreadsheets, LSEG Graphics or the Graphics Object (RGO) in LSEG Workspace for further processing.
  • Market-consistent data location and format.

RICs exist in two forms:

  1. Full quote.
  2. Chain or tile.

Full quotes

A full quote provides full information on the requested financial instrument.

Example:

  • EUR= – euro spot rate.

EUR=

You can get full quote RIC real-time pricing snapshot and fundamental data using the library get_data method.

# Get data for EUR= with selected fields
df_eur = ld.get_data(
universe=['EUR='],
fields=['TIMACT', 'NETCHNG_1', 'CURRENCY', 'BID', 'ASK', 'ACVOL_1', 'QUOTE_DATE']
)
df_eur

InstrumentTIMACTNETCHNG_1CURRENCYBIDASKACVOL_1QUOTE_DATE
0EUR=04:36:000.0008USD1.1671.1671148802026-04-09

The full quote RICs can be used with the Data Library get_history method too.

df_history_eur = ld.get_history(
universe=['EUR='],
interval='weekly',
start='2024-12-15',
end='2025-02-15'
)
df_history_eur
EUR=AMERHI_BIDASIACL_BIDOPEN_ASKBID_HIGH_1EURHI_BIDNUM_BIDSASK_LOW_1ASIAHI_BIDEURLO_BIDASIAOP_BID...EUROP_BIDASKAMERLO_BIDASK_HIGH_1AMERCL_BIDBIDASIALO_BIDMID_OPENMID_HIGHMID_LOW
Date
2024-12-201.05221.03821.04981.05341.05243512891.03441.05341.03411.0496...1.05181.04311.03431.05361.04291.04291.03411.05121.05121.03525
2024-12-271.04431.04211.04271.04451.04432129871.03841.04451.03821.0423...1.04381.04291.03821.04481.04271.04271.03871.040551.04281.0398
2025-01-031.04581.0281.04351.04581.04582519701.02261.04331.02231.0431...1.04251.0311.02231.04591.03081.03081.02571.040751.040751.0266
2025-01-101.04361.02961.03051.04361.04363107541.02171.04241.02141.0301...1.03081.02471.02141.04391.02441.02441.02791.039051.039051.02455
2025-01-171.03541.02841.02421.03541.03543297661.01791.03091.01761.024...1.02191.02721.01871.03561.02711.02711.02061.02451.03081.0245
2025-01-241.05211.04581.02781.05211.0523241521.02671.0471.02971.0274...1.03021.04951.03081.05251.04931.04931.02651.04161.04941.04085
2025-01-311.05321.04041.04871.05321.05324167051.03511.04931.03581.0485...1.04621.03651.03491.05351.03621.03621.03751.04921.04921.03635
2025-02-071.04421.03881.0291.04421.04425058971.0151.04091.02121.0286...1.02391.03281.02421.04451.03271.03271.01421.034451.040251.03275
2025-02-141.05141.04651.03261.05141.05143949761.02811.04721.02981.0322...1.03161.04951.03031.05151.04911.04911.02791.030751.04931.03075
2025-02-211.05031.04921.04911.05061.04993620361.04011.05061.04031.0487...1.04891.0461.041.05081.04581.04581.04171.04841.050151.0422

10 rows × 25 columns

Additionally, the Library news.get_headlines and news.get_story methods support the full quote RICs too. Please see more detail on Chapter 12: News.

from datetime import timedelta
from IPython.display import HTML


nvdia_headlines = ld.news.get_headlines('R:LSEG.L and AND Language:LEN' , start='20-02-2025', end=timedelta(days=-4), count=5)
nvdia_headlines
headlinestoryIdsourceCode
versionCreated
2026-04-03 19:54:05.607GTN Appoints Franklin Yang, Former BNP Paribas...urn:newsml:reuters.com:20260403:nNRA02r04w:1NS:DATMTR
2026-04-03 12:52:41.296London Stock Exchange (LSEG.L) is trading 1.11...urn:newsml:newsroom:20260403:nNRA02mkl7:0NS:STOCKP
2026-04-02 19:36:59.983LSEG and Dell Technologies Ink Deal to Strengt...urn:newsml:newsroom:20260402:nNRA02cslm:0NS:NEWMAR
2026-04-02 14:18:48.872Tradeweb Markets (TW) is trading 0.76 percent ...urn:newsml:newsroom:20260402:nNRA0285pf:0NS:STOCKP
2026-04-02 13:22:23.499London Stock Exchange Group Charts Growth Thro...urn:newsml:newsroom:20260402:nNRA027cjr:0NS:NEWWIR
story_id = nvdia_headlines['storyId'].iloc[4]
print(f'Story ID = {story_id}')

story = ld.news.get_story(story_id, format=ld.news.Format.HTML)
HTML(story)

Story ID = urn:newsml:newsroom:20260402:nNRA027cjr:0

NEWS BITES - CORPORATE WIRE

UNITED STATES EDITION

02 April 2026 09:17 EDT

As of 31st March 2026, London Stock Exchange Group remains a central operator of global market infrastructure, spanning exchanges, data and post trade services. Revenue is built on three pillars capital markets, post trade and data analytics, with recurring subscriptions representing a large majority of income. LSEG footprint covers Europe, North America and Asia, with US exposure via data clients and partnerships rather than direct exchange ownership, and Refinitiv enabling access to North American buy side and sell side firms. A Microsoft cloud data delivery partnership targets asset managers with trillions in assets under management. Growth blends organic technology driven expansion with selective M and A activity. The Workspace platform unifies data, analytics and trading tools to compete with Bloomberg, while AI and machine learning bolster risk management and surveillance in response to regulatory changes. Key risks include regulatory scrutiny on data market power, sensitivity to trading volumes and potential delays from integration. North American investors should monitor quarterly recurring revenue trends, the pace of M&A activity and US client ASV growth.

London Stock Exchange Stock Dashboard Adr:LSEGY

Last$29.61EPS (FY2025)$2.38
52-Week Price Range$24.07 - $39.79Shares Outstanding2,060,000,000
Ave Daily Volume1,001,640 ADRsInstitutional Ownership% of shares outstanding 0.02%
Today's Volume [VI]856,900 [0.9]Dividend Yield % (TTM)1.5
Market Cap$61 billionDPS (past 12 months)$0.4 or 44c
ExchangeINTERNATIONAL DEPOSITORY RECEIPTS [USOTC]SectorDiversified Financial Services [Rank by MCap 7 of 118 stocks]
P/E9.4

IN TODAY'S REPORT:

SECTION 1 LONDON STOCK EXCHANGE ACTIVITIES

SECTION 1 London Stock Exchange Activities

Activities

The London Stock Exchange Group (LSEG) is a premier global provider of financial market infrastructure, data, and analytics, headquartered in London. Its core business activities include operating the London Stock Exchange, one of the world's oldest and most established venues for trading equities, bonds, derivatives, and exchange-traded funds, while also offering clearing, settlement, and listing services to facilitate capital raising for companies worldwide. LSEG extends its operations through information services, providing real-time market data and advanced analytics to investors and institutions. The fastest-growing segments are data and analytics, fueled by surging demand for AI-driven insights and ESG (Environmental, Social, and Governance) data, as well as technology solutions that support digital platforms and fintech innovations. This diversification positions LSEG as a key player in the evolving financial ecosystem, driving efficiency and innovation across global markets. It is the International Depository Receipt (IDR) market's 7th largest Diversified financial services company by market capitalisation.

COMPANY IDENTIFIERS

Contact: 44-20-7797-1000

Physical Address: 10 Paternoster Square London, EC4M 7LS United Kingdom

State/Province/Country: United Kingdom

Country of Incorporation: United Kingdom

Exchange: OT

London Stock Exchange

ISIN: US54211Y1073

RIC: LNSTY.PK

CIK: 1657036

CUSIP: 54211Y107

Source: www.BuySellSignals.com

Searching Other Symbol Types from RIC Code

The Data Library Content Layer symbol_conversion module lets you retrieve associate ISIN, PermID, Ticker, etc. symbol types from the input RIC code.

What is the Content Layer?

The Content Layer exposes the same data as the Access layer through more granular, object-oriented API interfaces. It offers additional capabilities not available via the Access layer, including:

  • Richer responses with metadata and sentiment scores (where available).
  • Support for asynchronous and event-driven operating modes, in addition to synchronous.
  • Interfaces modelled around logical market data objects, such as Level 1 Market Price Data (snapshot/streaming), News, Historical Pricing, Bond Analytics, Environmental & Social Governance (ESG), Search, IPA, and more.
from lseg.data.content import symbol_conversion

response = symbol_conversion.Definition(symbols=['NVDA.O','AAPL.O','MSFT.O','AMZN.O','GOOG.O','AVGO.O','META.O']).get_data()
response.data.df
DocumentTitleRICIssueISINCUSIPTickerSymbolIssuerOAPermID
NVDA.ONVIDIA Corp, Ordinary Share, NASDAQ Global Sel...NVDA.OUS67066G104067066G104NVDA4295914405
AAPL.OApple Inc, Ordinary Share, NASDAQ Global Selec...AAPL.OUS0378331005037833100AAPL4295905573
MSFT.OMicrosoft Corp, Ordinary Share, NASDAQ Global ...MSFT.OUS5949181045594918104MSFT4295907168
AMZN.OAmazon.com Inc, Ordinary Share, NASDAQ Global ...AMZN.OUS0231351067023135106AMZN4295905494
GOOG.OAlphabet Inc, Ordinary Share, Class C, NASDAQ ...GOOG.OUS02079K107902079K107GOOG5030853586
AVGO.OBroadcom Inc, Ordinary Share, NASDAQ Global Se...AVGO.OUS11135F101211135F101AVGO5060689053
META.OMeta Platforms Inc, Ordinary Share, Class A, N...META.OUS30303M102730303M102META4297297477

Chains and tiles

A chain or tile is a code that displays a set of related instruments, such as options on a specific stock. With a chain or tile, you can display a whole set of instruments using a single code.

So what is the difference between a chain and a tile?

All market sectors make use of either chains or tiles, but not both:

  • FX and money markets use tiles.
  • Most other market sectors use chains.

Both chains and tiles can show:

  • All constituents of an index.
  • All delivery months of a future.
  • European spot rates.
  • All at-the-money strikes of an option.
  • All world indices.

A chain is defined either by LSEG or by the organization that contributes the data. A chain’s content, format and fields displayed can only be changed by the owners of the chain (within certain limitations).

When you have a chain or tile on display:

  • Double-click on the code for any individual instrument to view a full quote for that instrument.
  • You can copy one or more instrument codes and paste them into a spreadsheet for further processing.

Check the difference between a RIC and a chain RIC document on the LSEG My Account website for more detail.

How to display a chain

There are various ways of displaying a chain:

  1. Double-click any of the chain codes displayed in angle brackets, such as <0#.INDEX> (all chain codes, when displayed, can be recognized by the 0# at the beginning).
  2. Enter the full command including the 0# and press Enter, for example 0#.INDEX.

If you have any problems when calling up chains, make sure you have used the correct syntax. See the chapter on Error messages / permissioning for further information.

Here is an example display of the S&P 500 INDEX chain:

  • 0#.SPX Quote

0#.SPX

You can verify if the RIC is a Chain RIC by checking if the RIC contains the LONGLINK1 to LONGLINK14 fields. To check the RIC field, right-click on the Quote app and choose the Template --> Display All Fields option to display the RIC data as all the fields available.

0#.SPX

0#.SPX

You can use the Data Library Chain object to get chain's constituent RICs

from lseg.data.discovery import Chain
Chain_RIC = '0#.SPX'
# Get Chain constituents RICs
spx = Chain(Chain_RIC)

print(f'Listing first 20 constituents of S&P 500 INDEX chain ({Chain_RIC}):')
for constituent in spx.constituents[:20]:
print(constituent)

Listing first 20 constituents of S&P 500 INDEX chain (0#.SPX): A.N AAPL.OQ ABBV.N ABNB.OQ ABT.N ACGL.OQ ACN.N ADBE.OQ ADI.OQ ADM.N ADP.OQ ADSK.OQ AEE.N AEP.OQ AES.N AFL.N AIG.N AIZ.N AJG.N AKAM.OQ

The Chain.constituents property returns constituent RICs as a Python List which can be used with the Data Library get_data and get_history methods.

The example of get_data method with Chain.constituents list is as follows:

print('Getting data for the first 10 constituents of S&P 500 INDEX chain data:')
ld.get_data(spx.constituents[:10], ['BID', 'ASK', 'TR.Revenue','TR.Volume','TR.Commonname'])

Getting data for the first 10 constituents of S&P 500 INDEX chain data:

InstrumentRevenueVolumeCompany Common NameBIDASK
0A.N6948000000501661Agilent Technologies Inc0.00.0
1AAPL.OQ41616100000014776674Apple Inc258.1258.75
2ABBV.N611600000001766994AbbVie Inc0.00.0
3ABNB.OQ122410000001475345Airbnb Inc129.21134.0
4ABT.N443280000002579998Abbott Laboratories0.00.0
5ACGL.OQ<NA>728885Arch Capital Group Ltd97.02100.02
6ACN.N696729770001417956Accenture PLC0.00.0
7ADBE.OQ237690000001510638Adobe Inc239.14239.46
8ADI.OQ110197070001676872Analog Devices Inc340.0346.0
9ADM.N802690000001068529Archer-Daniels-Midland Co0.00.0

The example of get_history method with Chain.constituents list is as follows:

df_history_spx = ld.get_history(
universe=spx.constituents[:10],
fields=['TRDPRC_1','HIGH_1','LOW_1','BID','ASK'],
)
df_history_spx
A.NAAPL.OQ...ADI.OQADM.N
TRDPRC_1HIGH_1LOW_1BIDASKTRDPRC_1HIGH_1LOW_1BIDASK...TRDPRC_1HIGH_1LOW_1BIDASKTRDPRC_1HIGH_1LOW_1BIDASK
Date
2026-03-11115.42116.39114.16115.39115.4260.81262.13259.58260.77260.86...319.22321.46316.47319.12319.2870.8371.4268.9170.8570.86
2026-03-12111.63114.19111.0111.58111.67255.76258.78254.19255.75255.76...307.27314.14304.33307.17307.2572.573.770.5272.572.51
2026-03-13111.51113.3111.07111.51111.54250.12256.32249.52250.01250.16...306.07311.13303.57306.07306.1971.9873.6671.4271.9771.98
2026-03-16111.83114.07111.455111.81111.82252.82253.88249.88252.77252.8...310.92313.72309.29310.84310.9370.7572.170.3970.7470.75
2026-03-17112.75114.87112.67112.72112.75254.23255.125252.18254.21254.24...313.66315.29310.72313.41313.6572.1273.1271.172.1272.13
2026-03-18111.5112.41110.34111.46111.5249.94254.9249.0249.88249.91...308.59316.8307.88308.55308.5970.8772.1870.8770.8770.89
2026-03-19111.75112.45110.51111.69111.74248.96251.83247.32248.86248.89...310.44313.38300.91310.32310.4468.6470.5568.2568.6368.66
2026-03-20111.3112.24110.2111.27111.28247.99249.18246.02248.16248.2...309.43312.14306.12309.57309.5866.1768.8265.166.1666.17
2026-03-23112.02113.42111.55112.01112.02251.49254.56250.28251.43251.44...312.19317.44311.86312.17312.1967.9968.4666.0267.9868.0
2026-03-24114.2115.18110.59114.18114.2251.64254.82249.55251.73251.75...321.83324.58311.94321.81321.9671.4471.5868.3171.4471.45
2026-03-25112.98116.04111.91113.04113.05252.62254.98251.6252.55252.57...322.03328.16320.73321.96322.0371.6671.8870.5171.6871.69
2026-03-26113.48114.52113.27113.48113.53252.89257.0250.8252.88252.89...313.42321.12312.47313.3313.4472.3373.6771.2972.3172.33
2026-03-27110.24113.53109.9110.21110.27248.8255.46248.1248.61248.62...307.44312.94306.19307.42307.5372.2374.1371.7372.272.21
2026-03-30112.01112.95111.28112.04112.05246.63250.84245.52246.53246.55...303.1314.03300.56302.94303.0871.7574.071.5971.7571.76
2026-03-31113.98115.17112.39113.98114.01253.79255.48247.11253.65253.8...318.14319.27306.57317.92318.172.6973.3471.6772.6772.68
2026-04-01114.54115.64114.01114.5114.53255.63256.18253.33255.67255.75...320.58325.74317.23320.52320.5872.3773.8371.7172.3472.36
2026-04-02115.48117.26112.99115.41115.42255.92256.13250.65255.87255.93...318.34321.69311.59318.24318.4173.8373.98572.4573.8373.86
2026-04-06114.84115.4113.24114.84114.9258.86262.16256.48258.88258.95...327.36327.46319.06327.35327.3873.3873.8372.6373.3573.38
2026-04-07113.88114.55112.95113.87113.89253.5256.04245.7253.49253.5...327.41327.51321.195327.36327.4472.1573.6171.6472.1572.17
2026-04-08116.92118.13116.26116.91116.94258.9259.73256.53258.91258.96...346.21348.98342.05346.26346.3271.7271.7567.6771.7271.73

20 rows × 50 columns

How to display a tile

Tile names are not preceded by 0#.

A tile can be called up in the display application just like any ordinary page or RIC, simply by typing the tile name and pressing Enter.

Example:

  • EFX= – European spot rates.

EFX=

If you check the tile RIC fields, you see the LONGLINK1 to LONGLINK14 fields too.

EFX=

For markets such as foreign exchange and money markets, which use a lot of tiles to show market information, this is more intuitive than calling up a chain.

By double-clicking on any field in the tile display, you retrieve a full quote with more information.

For more information on tiles, see the MONEY speed-guide.

The Data Library Chain object also supports the tile RIC too.

efx = Chain('EFX=')
print(f'EFX= Tile constituent RICs are: {efx.constituents}')

EFX= Tile constituent RICs are: ['EUR=', 'JPY=', 'GBP=', 'CHF=', 'XAU=', 'XAG=', 'AUD=', 'CAD=', 'SEK=', 'NOK=', 'DKK=', 'RUB=', 'TRY=', 'ISK=', 'PLN=', 'CZK=', 'HUF=', 'UAH=', 'ILS=', 'ALL=', 'BGN=', 'GEL=', 'GIP=', 'KZT=', 'MDL=', 'MKD=', 'RON=', 'RSD=', 'AMD=']

efx_data = ld.get_data(
universe=efx.constituents,
fields=['BID', 'ASK', 'CF_SOURCE','TR.InstrumentDescription']
)
efx_data
InstrumentInstrument DescriptionBIDASKCF_SOURCE
0EUR=Euro/US Dollar FX Spot Rate1.1671.1671ZUERCHER KB
1JPY=US Dollar/Japanese Yen FX Spot Rate158.67158.72BARCLAYS
2GBP=UK Pound Sterling/US Dollar FX Spot Rate1.34021.3406BARCLAYS
3CHF=US Dollar/Swiss Franc FX Spot Rate0.79060.7907HSBC
4XAU=Gold Spot Multi-Contributor4719.034720.63HSBC LON
5XAG=Silver Spot Multi-Contributor74.062674.1146HSBC LON
6AUD=Australian Dollar/US Dollar FX Spot Rate0.70450.7047BARCLAYS
7CAD=US Dollar/Canadian Dollar FX Spot Rate1.38451.385BARCLAYS
8SEK=US Dollar/Swedish Krona FX Spot Rate9.31969.3238ZUERCHER KB
9NOK=US Dollar/Norwegian Krone FX Spot Rate9.57569.5811ZUERCHER KB
10DKK=US Dollar/Danish Krone FX Spot Rate6.4036.4034DANSKE BANK
11RUB=US Dollar/Russian Rouble FX Spot Rate78.545578.5545Commerzbank
12TRY=US Dollar/Turkish Lira FX Spot Rate44.464744.5352BROKER
13ISK=US Dollar/Iceland Krona FX Spot Rate123.08123.35ISLANDSBANKI
14PLN=US Dollar/Polish Zloty FX Spot Rate3.64193.6458BROKER
15CZK=US Dollar/Czech Koruna FX Spot Rate20.88120.917DANSKE BANK
16HUF=US Dollar/Hungarian Forint FX Spot Rate322.55323.09DANSKE BANK
17UAH=US Dollar/Ukraine Hryvnia FX Spot Rate43.443.5AVANGARD
18ILS=US Dollar/Israeli Shekel FX Spot Rate3.09163.0936MIZRAHIBK
19ALL=US Dollar/Albanian Lek FX Spot Rate81.682.65PROCREDIT AL
20BGN=US Dollar/Bulgarian Lev FX Spot Rate1.66481.6652CEN COOP BK
21GEL=US Dollar/Georgian Lari FX Spot Rate2.6612.721TBC BANK
22GIP=Gibraltar Pound/US Dollar FX Spot Rate1.34181.3422Reuters
23KZT=US Dollar/Kazakhstan Tenge FX Spot Rate476.78477.66LSEG
24MDL=US Dollar/Molodovan Leu FX Spot Rate17.0317.13COUGAR
25MKD=US Dollar/North Macedonian Denar FX Spot Rate53.1153.54STOPANSKA BK
26RON=US Dollar/Romanian New Leu FX Spot Rate4.3634.3676BCR
27RSD=US Dollar/Serbian Dinar FX Spot Rate100.44100.73ERSTE BANK
28AMD=US Dollar/Armenian Dram FX Spot Rate375.32377.32COUGAR

Pages

Pages consist of text-based data presented in a page-like format, originally designed for terminal screen displays prevalent during the 1980s and 1990s.

Pages are primarily used for:

  • Speed-guides.
  • Over-the-counter traded instruments.
  • Emerging markets.

Note: Most of the data available through page RICs or speed-guides can now be accessed directly via the Workspace Search or dedicated ** Workspace Apps**.

Not all pages are owned by LSEG; some are owned by contributors to the LSEG network. Many of these are market players who want to offer their current rates or comment on the state of the market. There are also specialist data providers who offer expert analysis and market commentary.

In some cases, access to these pages is restricted. Brokers, for example, will not be able to see the pages of their competitors. In such cases, it is up to the owner of the page to grant access to the user.

To gain access rights to one of these pages, please contact your LSEG representative.

Page formats

Some pages are larger than others:

  • 64 x 14 (64 characters across x 14 rows down)
  • 80 x 25 (80 characters across x 25 rows down)

All pages are accessed the same way: type Quote RIC code and press Enter.

If you are interested in displaying your data on the LSEG network, you'll find more information about customer-owned pages in the Contributed data chapter of this guide. Alternatively, contact your local LSEG representative to discuss which contribution methods suit you best.

Example of Pages RICs:

  • HOLIDAY
  • BROKER

BROKER

The page lets you navigate through its row and column menu by clicking the one you want to see. Let's demonstrate by clicking on the ICAP menu.

BROKER

The page moves to ICAP page RIC which you can continue navigate until you found the data you need.

BROKER

BROKER

You can check if the RIC is the PAGE RIC by checking its fields. If the RIC contains the following types of fields, it is the Page RIC.

  • ROW64_1 to ROW64_14 (64 x 14 (64 characters across × 14 rows down))
  • ROW80_1 to ROW80_25 (80 x 25 (80 characters across × 25 rows down))

Note: To check the RIC fields, right-click on the Quote app and choose the Template --> Display All Fields option to display the RIC data as all the fields available.

Example with BROKER Page RIC.

BROKER

The pages RIC can be retrieve programmatically to get each row data with the Data Library.

def get_page_data(universe):
# Build field lists for both possible page layouts:
# ROW64_* — 64-character wide rows (fields 1–14)
# ROW80_* — 80-character wide rows (fields 1–25)
row64_fields = [f"ROW64_{i}" for i in range(1, 15)]
row80_fields = [f"ROW80_{i}" for i in range(1, 26)]

# Fetch all fields in a single API call.
# A page RIC uses exactly one layout, so the other layout's columns return as all-NaN.
df_result = ld.get_data(universe=universe, fields=row64_fields + row80_fields)

# Drop columns that are entirely NaN to keep only the active layout's data.
return df_result.dropna(axis='columns', how='all')

# Request page rows based on detected format
df = get_page_data('BROKER')

# Print each returned row field and its value
for col in df.columns:
print(f'{col}: {df[col].values[0]}')
    Instrument: BROKER
ROW80_1: BROKER DATA - LSEG SPEED GUIDE BROKER
ROW80_2: BROKER DATA
ROW80_3:
ROW80_4: Detailed below are key OTC Inter Dealer broker menu pages. Double click in <>
ROW80_5: for detailed coverage.
ROW80_6:
ROW80_7:
ROW80_8: BGC PARTNERS TP-ICAP
ROW80_9: BGC Partners.............<BGCPINDEX> ICAP....................<ICAP>
ROW80_10: Fenics Market Data.......<FENICSMD> Totan ICAP..............<TOTANICAPINDEX>
ROW80_11: GFI......................<GFIMENU> Tullett Prebon..........<TPINDEX>
ROW80_12: Martin Brokers...........<RPMARTIN>
ROW80_13:
ROW80_14: Carl Kliem...............<KLIEM> Tradeweb.................<TRADEWEB>
ROW80_15: CIMD.....................<CIMDA> Tradition................<TRADITION>
ROW80_16: CME NEX..................<NEXDATA>
ROW80_17: Gottex Brokers...........<GOTTEX>
ROW80_18: GMG Brokers..............<GMGM>
ROW80_19: StoneX...................<CK/HOME>
ROW80_20:
ROW80_21:
ROW80_22: ==============================================================================
ROW80_23: Main Index <LSEG> Debt Guide <BONDS> Money Guide <MONEY>
ROW80_24: Lost? Selective Access?...<USER/HELP> LSEG Phone Support..<PHONE/HELP>
ROW80_25:

# Request page rows based on detected format
df = get_page_data('ICAP')

# Print each returned row field and its value
for col in df.columns:
print(f'{col}: {df[col].values[0]}')
    Instrument: ICAP
ROW80_1: 08:56 28JAN19 ICAP Global Index UK69580 ICAP
ROW80_2:
ROW80_3:
ROW80_4: =============================ICAP GLOBAL MENU===========================
ROW80_5: = =
ROW80_6: = COUNTRY DIRECTORY =
ROW80_7: = ----------------- =
ROW80_8: = =
ROW80_9: = EUROPE...................................<ICAPEU> =
ROW80_10: = =
ROW80_11: = US.......................................<ICAPUS> =
ROW80_12: = =
ROW80_13: = ASIA...................................<ICAPAPME> =
ROW80_14: = =
ROW80_15: = MIDDLE EAST..............................<ICAPME> =
ROW80_16: = =
ROW80_17: = LATAM.................................<ICAPLATAM> =
ROW80_18: = =
ROW80_19: = Fee Liable Optional Services........<ICAPSPECIAL> =
ROW80_20: = =
ROW80_21: = =
ROW80_22: = Website - https://www.icap.com =
ROW80_23: = =
ROW80_24: ========================================================================
ROW80_25: ICAP Global Index <ICAP>. CCP Table <ICAPCCP>. Forthcoming changes <ICAPCHANGE>

Some page RICs, such as HOLIDAY, display market holidays for each country. Rather than reading this data row by row from the page, you can retrieve it programmatically using the Data Library's dates_and_calendars module.

HOLIDAY

Please find more example usages of the dates_and_calendars module from Access layer - Dates & Calendars example page on GitHub.

holidays = ld.dates_and_calendars.holidays(
start_date="2026-01-01",
end_date="2026-12-31",
calendars=["USA", "CHN"]
)

holidays.df.head(10)
namecalendarscountriestagdate
0New Year's Day[USA][USA]None2026-01-01
1New Year's Day (Day 1)[CHN][CHN]None2026-01-01
2Martin Luther King's Birthday[USA][USA]None2026-01-19
3Washington's Birthday[USA][USA]None2026-02-16
4Chinese New Year '26 (Day 1)[CHN][CHN]None2026-02-16
5Memorial Day[USA][USA]None2026-05-25
6Juneteenth National Independence Day[USA][USA]None2026-06-19
7Dragon Boat Festival '26[CHN][CHN]None2026-06-19
8Independence Day[USA][USA]None2026-07-04
9Labor Day[USA][USA]None2026-09-07

Speed-guides

Speed-guides are key to finding any data item worldwide on any LSEG data feed.

They are pages provided by LSEG that give easy access to codes for different markets.

You can find anything you want by starting with by typing the page RIC on the search bar and press Enter.

Example with REUTERS LSEG's main speed-guide RIC.

REUTERS

The page REUTERS contains all top-level market pages.

REUTERS

While speed-guides and page RICs remain accessible, LSEG Workspace now offers dedicated applications that provide a significantly richer and more intuitive experience. It is strongly recommended to leverage these apps wherever possible, as they present the same underlying data with enhanced visualisation, easier navigation, and additional analytical capabilities.

For example, the COUNTRIES speed-guide is now superseded by the World OV app, which offers a structured, region-by-region breakdown of market data, news, investment information, and research — all within a single, integrated interface.

COUNTRIES

COUNTRIES

From the World OV app, you can drill down into individual regions to explore market performance, news, investment data, and research content.

COUNTRIES

This World OV app also lets you navigate to the World Holiday (short cut World HOL app), the same information as HOLIDAY page above too.

HOLIDAY

The COUNTRIES speed-guide remains available for users who prefer the traditional page-based interface.

COUNTRIES

Similarly, the EQUITY speed-guide — accessible from the main REUTERS page — is now complemented by the EQG app, which delivers a more comprehensive and navigable equity market overview.

EQUITY

EQUITY

The EQUITY speed-guide page remains available as well.

EQUITY

Note: Certain data is available exclusively through page RICs and has not yet been migrated to a dedicated app. In such cases, use the Workspace search bar to locate the relevant RIC or speed-guide directly.

Example:

  • NXT/DEBT1 (Euronext debt guide)

NXT/DEBT1

NXT/DEBT1

To navigate further, double-click on any code within the displayed page to load the next level of information. This process can be repeated until you reach the desired data. Alternatively, you may type the speed-guide code directly into the search bar and press Enter.

# Request page rows based on detected format
df = get_page_data('NXT/DEBT1')

# Print each returned row field and its value
for col in df.columns:
print(f'{col}: {df[col].values[0]}')

Instrument: NXT/DEBT1
ROW80_1: EURONEXT DEBT - REFINITIV SPEED GUIDE NXT/DEBT1
ROW80_2: Welcome to the Euronext Debt Guide. To access information, double-click in < >
ROW80_3: or [ ]. For more guidance see <USER/HELP>.
ROW80_4: =EURONEXT DEBT BY AREA================= =NEWS & ANALYSIS=======================
ROW80_5: French debt.................<NXT/DEBT2> All Refinitiv Debt News....<DEBT/NEWS1>
ROW80_6: Dutch debt..................<NXT/DEBT3> Euronext News.............[FR-NL-BE-PT]
ROW80_7: Belgian debt................<NXT/DEBT4> Debt News-Euronext....[DBT-FR-NL-BE-PT]
ROW80_8: Portuguese debt.............<NXT/DEBT5> Eurobond News.........[EUB-FR-NL-BE-PT
ROW80_9: Cert.ofDeposit&TreasuryBills <0#TCN=PA> Money and Debt News.....[T-FR-NL-BE-PT]
ROW80_10: Italian Debt..................<IT/DEBT> New Issue Headlines...[ISU-FR-NL-BE-PT]
ROW80_11: EuroTLX Debt..................<IT/TLX2>
ROW80_12:
ROW80_13: =MARKET SECTOR INDICES================= Debt Derivatives....[D-DRV-FR-NL-BE-PT]
ROW80_14: Government..................<NXT/GOVT1> Economic Indicators...[ECI-FR-NL-BE-PT]
ROW80_15: Corporate/Public Sector.....<NXT/CORP1> Interest Rates News...[INT-FR-NL-BE-PT]
ROW80_16: Sovereign....................<NXT/SOV1> Loan Market Reports...[LOA-FR-NL-BE-PT]
ROW80_17: Ratings News..........[AAA-FR-NL-BE-PT]
ROW80_18: =EURO DEBT GUIDE=======================
ROW80_19: Pan European Debt............<EUR/DEBT> =RELATED INFORMATION===================
ROW80_20: Overview Data.................<NXTCOMP>
ROW80_21: =EUROBONDS============================= Euronext Contrib Guide......<NXT/CONT1>
ROW80_22: Eurobonds by currency.......<EUROBOND7>
ROW80_23: ================================================================================
ROW80_24: Main Guide<EURONEXT> Debt Guide<BONDS> Broker Guide<BROKER>
ROW80_25: Refinitiv Phone Support<PHONE/HELP> Next Page<NXT/DEBT2>

Field numbers

Every FID has a unique field number, which you can use as an alternative to the FID.

  • Example: the field number for the closing price is 21.

You can find each RIC's FIDs and Field Names details using the LSEG Workspace built-in app named Data Item Browser (type DIB in a search bar). Please find more detail on how to use the Data Item Browser application via this video.

DIB

The another way to check the RIC's fields is by right-click on the Quote app and choose the Template --> Display All Fields option to display the RIC data as all the fields available.

all_field

all_field

In brief: RICs and pages

  • LSEG uses RICs and pages to display data.

  • RICs (Instrument Codes) are codes that provide a structured means of retrieving data.

    • Full quotes – show all information about one financial instrument.
    • Chains and tiles – show key information on several financial instruments.
  • To call up full quotes and tiles, type the code, then space and q and press Enter (Example: EUR= Q).

    QUOTE

  • To call up chains (identified by 0#.): type the code with 0#. and press Enter (the chain key).

    CHAIN

  • Pages are used by LSEG for speed-guides such as REUTERS, and by financial institutions (banks, brokers) to display prices or market commentary.

    • See CONTRIBUTIONS and BROKER.

    BROKER

  • Pages are also used by third-party data providers, who take advantage of the LSEG network to provide specialist data or commentary.

The Data Library get_data and get_history methods support both full quote, chain, and page RICs. However, to expand the chain RICs, use the library Chain object together with the get_data and get_history methods.

The general RIC structure

RICs are built from different elements that are used to identify different aspects of the information you want to view. A RIC generally includes some, but not necessarily all, of the following elements:

  • A RIC root.
  • Period or time intervals.
  • The instrument identifier.
  • One or more delimiters.
  • A source code.

These elements are necessary because of the diversity of markets that LSEG covers, and to avoid duplication of codes.

The RIC root

Because there are often several different issues or financial instruments based around a single entity, the RIC root identifies the most basic aspect of the instrument.

Examples:

  • Money RIC roots:
    • The RIC root for the euro one-month deposit (EUR1MD=) is EUR.

EUR1MD=

ld.get_data(
universe=['EUR1MD='],
fields=['BID','ASK','OPEN_PRC','HST_CLOSE','HSTCLSDATE']
)
InstrumentBIDASKOPEN_PRCHST_CLOSEHSTCLSDATE
0EUR1MD=2.052.252.052.022026-04-08

What is the advantage of knowing about RIC roots?

If you know the RIC root and the other elements that make up specific instrument or code types, then you can combine these to get the code you need.

Example:

RIC roots are also useful when you use data in spreadsheets:

  • You can split RICs into their components and therefore make efficient use of live links in Workspace Quote app.

Example: split the cross-rate GBPMYR=R into components:

  • GBP – base currency.
  • MYR – counter-currency.
  • =R – LSEG calculated cross-rate.

If you change MYR to another currency (for example HKD) in the relevant the Quote app, Workspace will immediately update the information.

This also works well for benchmarks in different countries or many other instruments.

result = ld.get_history(
universe=['GBPTHB=R'],
interval='monthly',
start='2024-01-01',
end='2025-01-30'
)
result
GBPTHB=ROPEN_ASKBID_HIGH_1NUM_BIDSASK_LOW_1BID_LOW_1ASKASK_HIGH_1BIDOPEN_BIDMID_PRICEMID_OPENMID_HIGHMID_LOW
Date
2024-01-3143.80245.547332837343.17543.1445.1645.59845.0743.72445.11543.7745.4743.2435
2024-02-2945.15745.78274488744.67944.60445.33145.83145.29145.07745.31145.03745.58744.828
2024-03-3145.33546.173231143245.26845.22245.94646.21345.90645.28845.92645.3746.052545.3475
2024-04-3045.97146.564244421345.4245.36246.4746.59546.39245.93246.43145.90946.48345.5205
2024-05-3146.47846.962241495745.55845.48446.89347.01546.84146.38846.86746.28746.86745.832
2024-06-3046.85647.015196082446.27146.23146.51247.05946.47246.80546.49246.895546.895546.4635
2024-07-3146.52347.071218393345.64345.55945.73247.11145.67746.46545.704546.46346.974545.7045
2024-08-3145.73245.704224181444.40444.33544.76145.78444.52345.67744.64245.34245.34244.5745
2024-09-3044.7345.064231548843.01742.9743.38845.09443.30544.543.346544.987544.987543.3
2024-10-3143.37843.993254689043.08143.01343.64144.08143.58243.31543.611543.23143.97943.1675
2024-11-3043.64144.708265650743.17143.0743.76244.74243.6543.58243.70643.91544.43843.1835
2024-12-3143.843.831226147442.52442.45343.04343.87942.86343.66742.95343.66343.66342.703
2025-01-3143.0643.405265286341.63741.48841.92343.47841.84142.88741.88242.941543.347541.744

Period or time intervals

The delivery period is a characteristic of the transaction, as opposed to maturity or expiration, which are characteristics of the instrument.

Examples of period or time intervals used in FX and money RICs:

  • ON – Overnight.
  • TN – Tomorrow-next.
  • SN – Spot-next.
  • SW – Spot week.
  • 1M, 2M, 3M, 6M, 9M – one, two, three, six, nine months.
  • 1Y, 2Y – one or two years.
  • 3X6, 1X4 – FRA periods (3 vs 6 months, etc.).

Examples in RICs:

  • EURON=
  • EURSW=
  • JPY3X6F=
  • USD1YD=

These are primarily used in foreign exchange and money market RICs. For more information, see the Foreign exchange and money markets chapter.

These RICs are supported by the Data Library too.

result = ld.get_history(
universe=['EURON='],
interval='daily',
start='2025-02-10',
end='2025-02-20'
)
result
EURON=BIDASKBID_HIGH_1BID_LOW_1OPEN_BIDMID_PRICENUM_BIDSASK_LOW_1ASK_HIGH_1ASIAOP_BID...EURLO_BIDEURCL_BIDAMEROP_BIDAMERHI_BIDAMERLO_BIDAMERCL_BIDOPEN_ASKDAYS_MATMATUR_DATESTART_DT
Date
2025-02-110.4760.4840.520.00.4350.48168840.3990.830.435...0.00.4730.4640.520.2540.4760.49512025021220250211
2025-02-120.420.520.520.00.4450.47167440.3950.690.445...0.00.4550.460.520.2580.420.49412025021320250212
2025-02-130.4720.4810.520.250.4620.4765162880.4040.690.462...0.250.4710.4470.520.2560.4720.48612025021420250213
2025-02-141.8411.8762.120.4270.4271.8585190280.492.520.427...1.4622.121.8652.121.651.8410.52742025021820250214
2025-02-17-0.0150.0150.52-0.19-0.190.09766-0.090.68-0.19...-0.015-0.0150.420.52-0.05-0.015-0.090<NA><NA>
2025-02-180.45750.48751.81-0.015-0.0040.4725223040.0041.91-0.004...-0.0150.470.45750.520.3270.45750.00412025021920250218
2025-02-190.450.480.52-0.0150.4520.465232240.0150.70.452...0.250.450.46250.520.3280.450.50212025022020250219
2025-02-200.4620.4710.53-0.0150.4630.4665224320.0150.8490.463...0.00.44010.4660.530.3150.4620.49312025022120250220

8 rows × 25 columns

ld.get_data(
universe=['JPY3X6F='],
fields=['BID','ASK','OPEN_PRC','HST_CLOSE','HSTCLSDATE']
)
InstrumentBIDASKOPEN_PRCHST_CLOSEHSTCLSDATE
0JPY3X6F=1.01251.03251.01251.011252026-04-08

RIC Structure and Delimiters

Instrument codes are built from different elements that identify specific aspects of the data you want to view. They may include some — but not necessarily all — of the following elements, depending on the market and instrument type.

RIC Structure

For more information, refer to the What are the different RIC structures in LSEG Workspace? document.

You can also search for RIC Structure on the LSEG MyAccount website to find RIC structure details and supported delimiters for other asset classes.

RIC Structure

Alternatively, refer to the Speed Guide pages via the RULES1 RIC in the Quote application.

RULES1

The following table lists some of the supported RIC delimiters:

SeparatorInstrument / UseExample
=FX, money and capital marketsJPY1MD=
/Prefix for closing or delayed data/.FTSE
/Within speed-guide namesWORLD/INDICES1
=XDelayed FX (10-minute delay)EUR=X
=SSnapshot FX (2-minute snapshot)EUR=S
.Equities and equity optionsLSEG.L
:Futures chains0#HSI:
-Physical commodities (type / specification / delivery location)0#AMI-JAG-TR

EUR=S

You can also use the Workspace Search app to find the data you need. The example below shows a search for sugar commodities RICs.

advanced search

Source codes

The source code indicates the source of the data. It is usually the last component of a RIC.

The most common source codes are:

  • Contributor code or Market Maker identifier.
  • Exchange identifier.

Contributor code or Market Maker identifier

A contributor code identifies any organization that contributes information to the LSEG network. A Market Maker identifier is used to identify a Market Maker who contributes quotes to a particular instrument.

  • The code is unique and consists of four upper-case letters.

Example:

  • EURTWI=DBBL – EURO Currency Index supplied by Deutsche Bank in London (DBBL).

You can use the Workspace Advanced Search to search for contributed data. Please find more detail on the Chapter 11 – Contributed data.

Contributor

Once you have your interested RIC code, you can use the Data Library to get data dynamically.

ld.get_data('EURTWI=DBBL',fields=['BID', 'ASK'])
InstrumentBIDASK
0EURTWI=DBBL128.53128.58

Exchange identifier

The exchange identifier identifies the exchange where an instrument is traded. It consists of up to three upper- or lower-case letters.

  • Exchange identifiers for cash prices: page STOCL and beyond.
  • Identifiers for derivatives exchanges: page RULES3.

RULES3

Example:

  • VOD.L – Vodafone group:
    • VOD – RIC root.
    • . – delimiter.
    • L – exchange identifier for London Stock Exchange.

In brief: general RIC structure

A RIC can often be constructed just by knowing its components, which is an effective way of working in data display or spreadsheet applications.

Diverse market conventions and instrument types make it necessary to have different RIC structures for each market, but the main elements are:

  1. RIC root

    • Examples: RTR, SUG, EUR, CHF.
  2. Period and time intervals

    • Examples: ON, SN, SW, 1M, 2M, 3M, 6M, 9M, 1Y, 2Y, 1X4, 2X5, 1X6.
  3. Delimiters

    • Characters such as +, =, ., /, :, !, *, ^.
  4. Source codes

    • Contributor / Market Maker identifier.
    • Exchange identifier.

Tip 1: To see a full quote from a chain, just double-click on the item.

Tip 2: All news stories for all companies in an index chain can be viewed by activating the window with the chained information and pressing the News key (F9).

Troubleshooting

Question 1: I got the record could not be found message instead of data from the Workspace desktop application and ld.get_data method.

the record could not be found

the record could not be found

Answer: The the record could not be found error message means the inputted instrument is not available on the Workspace platform or you have input invalid instrument name (invalid syntax, wrong case letter, etc.).

Question 2: I got The universe is not found message instead of data from ld.get_history method.

the record could not be found

Answer: The The universe is not found error message has the same meaning as the the record could not be found for the historical data request.

If you got the error messages above, please contact the Workspace Support Team to verify the instrument names that you need. To contact the LSEG Help Desk, please click on the Get Help & Support option on the ? menu of LSEG Workspace.

Help &amp; Support

Alternatively, you can submit a support ticket via LSEG Support website.

Help &amp; Support

Question 3: I got The access to field(s) denied. message from the Data Library. I can get that field via the Workspace Desktop application.

Answer: This is a permission issue. Please note that some instruments data and fields are available via the Workspace desktop or Excel application only, not API/Library. The reason is some data is not entitlement for programmatic consumption or the source of data can be different between the Workspace application and the Library. Some users may have a permission to access the data in Workspace, but not via the Data Library.

Please contact the Workspace Support Team to verify the field and RIC entitlement.

Ending the Data Library Session

To end the Data Library session, please use the ld.close_session method.

ld.close_session()