lseg
Use when fetching financial data from LSEG Workspace via the Eikon Data API. Covers cURL requests, field discovery, symbology conversion, and time series data retrieval.
When & Why to Use This Skill
This Claude skill enables seamless integration with LSEG Workspace via the Eikon Data API, allowing users to programmatically fetch real-time and historical financial data. It simplifies complex data acquisition tasks such as symbology conversion (RIC, ISIN, CUSIP), equity field discovery, and time series retrieval. By automating cURL requests and providing helper scripts, it streamlines financial research, maritime vessel tracking, and commodity trade flow analysis.
Use Cases
- Equity Analysis: Automatically retrieve key financial metrics like P/E ratios, market capitalization, and closing prices for a list of instruments to perform rapid valuation and market comparisons.
- Maritime Logistics & Tracking: Access real-time vessel data including GPS coordinates, destination ports, and navigation status using IMO numbers for global supply chain monitoring.
- Financial Data Normalization: Convert batches of disparate financial identifiers (e.g., converting ISIN or CUSIP to RIC) to ensure data consistency across different institutional databases.
- Historical Trend Analysis: Fetch daily or intraday time series data for specific assets over custom date ranges to identify market patterns or conduct backtesting for investment strategies.
- Commodity Trade Flow Monitoring: Analyze global trade movements by extracting loading/discharge ports, volumes, and charterer information for specific commodities.
| name | lseg |
|---|---|
| description | Use when fetching financial data from LSEG Workspace via the Eikon Data API. Covers cURL requests, field discovery, symbology conversion, and time series data retrieval. |
LSEG Workspace Data API
Access financial, vessel, and commodity data from LSEG Workspace via the Eikon Data API.
Prerequisites
- LSEG Workspace must be running on your machine (exposes local proxy on port 9000)
- App Key - generate via Workspace: type
APPKEYin search bar, select "Eikon Data API" checkbox
Store credentials in .env:
LSEG_APP_ID=your_app_key_here
LSEG_API_ENDPOINT=http://localhost:9000/api/udf/
API basics
Endpoint: http://localhost:9000/api/udf/
Required headers:
Content-Type: application/json
x-tr-applicationid: <app_key>
X-Forwarded-Host: localhost
Request format:
{
"Entity": {
"E": "<entity_type>",
"W": { <parameters> }
}
}
Entity types
DataGrid - fetch data for instruments
Basic query:
curl -s -X POST "$LSEG_API_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-tr-applicationid: $LSEG_APP_ID" \
-H "X-Forwarded-Host: localhost" \
-d '{
"Entity": {
"E": "DataGrid",
"W": {
"instruments": ["AAPL.O", "MSFT.O"],
"fields": [
{"name": "TR.CommonName"},
{"name": "TR.PriceClose"},
{"name": "TR.PE"}
]
}
}
}' | jq .
With date parameters (time series):
curl -s -X POST "$LSEG_API_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-tr-applicationid: $LSEG_APP_ID" \
-H "X-Forwarded-Host: localhost" \
-d '{
"Entity": {
"E": "DataGrid",
"W": {
"instruments": ["AAPL.O"],
"fields": [
{"name": "TR.PriceClose"},
{"name": "TR.Volume"}
],
"parameters": {
"SDate": "2025-01-01",
"EDate": "2025-01-31",
"TOP": 10000
}
}
}
}' | jq .
SymbologySearch - convert identifiers
Convert between RIC, ISIN, IMO, CUSIP, SEDOL, etc:
curl -s -X POST "$LSEG_API_ENDPOINT" \
-H "Content-Type: application/json" \
-H "x-tr-applicationid: $LSEG_APP_ID" \
-H "X-Forwarded-Host: localhost" \
-d '{
"Entity": {
"E": "SymbologySearch",
"W": {
"symbols": ["US0378331005"],
"from": "ISIN",
"to": ["RIC"],
"bestMatch": true
}
}
}' | jq .
Common identifier types: RIC, ISIN, CUSIP, SEDOL, IMO, ticker
Response format
{
"columnHeadersCount": 1,
"data": [
["AAPL.O", "Apple Inc", 278.28, 37.47],
["MSFT.O", "Microsoft Corp", 478.53, 34.05]
],
"headers": [[
{"displayName": "Instrument"},
{"displayName": "Company Common Name", "field": "TR.COMMONNAME"},
{"displayName": "Price Close", "field": "TR.PRICECLOSE"},
{"displayName": "P/E (Daily Time Series Ratio)", "field": "TR.PE"}
]],
"totalRowsCount": 3
}
Common fields
Equities
| Field | Description |
|---|---|
TR.CommonName |
Company name |
TR.PriceClose |
Closing price |
TR.PriceOpen |
Opening price |
TR.PriceHigh |
Day high |
TR.PriceLow |
Day low |
TR.Volume |
Trading volume |
TR.PE |
P/E ratio |
TR.CompanyMarketCap |
Market capitalization |
TR.TotalEmployees |
Employee count |
TR.HeadquartersCountry |
HQ country |
TR.GICSSector |
GICS sector |
Vessels (maritime)
| Field | Description |
|---|---|
TR.AssetIMO |
IMO number |
TR.AssetName |
Vessel name |
TR.AssetDWT |
Deadweight tonnage |
TR.AssetCubicCapacity |
Cubic capacity |
TR.AssetDateTime |
Position timestamp |
TR.AssetLocationLongitude |
Longitude |
TR.AssetLocationLatitude |
Latitude |
TR.AssetLocationDraught |
Current draught |
TR.AssetSpeed |
Speed |
TR.AssetHeading |
Heading |
TR.AssetDestination |
Destination port |
TR.AssetLocationStatus |
Navigation status |
Trade flows (vessels)
| Field | Description |
|---|---|
TR.AssetFlowPermID |
Flow ID |
TR.AssetLoadingPort |
Loading port |
TR.AssetLoadingDateTo |
Loading date |
TR.AssetDischargingPort |
Discharge port |
TR.AssetDischargeDate |
Discharge date |
TR.AssetFlowCommodity |
Commodity |
TR.AssetVolume |
Volume |
TR.AssetCharterer |
Charterer |
Helper scripts
This skill includes helper scripts in .claude/skills/lseg/scripts/:
| Script | Purpose |
|---|---|
lseg-query.sh |
General DataGrid queries |
lseg-symbology.sh |
Identifier conversion |
lseg-timeseries.sh |
Time series data |
Usage:
# Load environment
source .env
# Query company data
.claude/skills/lseg/scripts/lseg-query.sh "AAPL.O,MSFT.O" "TR.CommonName,TR.PriceClose"
# Convert ISIN to RIC
.claude/skills/lseg/scripts/lseg-symbology.sh "US0378331005" ISIN RIC
# Get time series
.claude/skills/lseg/scripts/lseg-timeseries.sh "AAPL.O" "TR.PriceClose" "2025-01-01" "2025-01-31"
Rate limits
| Limit | Value |
|---|---|
| Requests per second | 5 |
| Requests per day | 10,000 |
| Data per minute | 50 MB |
| Data per day | 5 GB |
| get_data points | ~10,000 |
| get_timeseries (interday) | 3,000 rows |
| get_timeseries (intraday) | 50,000 rows |
Troubleshooting
Connection refused: LSEG Workspace not running. Start the desktop app.
401 Unauthorized: Invalid or expired app key. Generate new key via APPKEY in Workspace.
Empty response: Check field names are correct (case-sensitive TR.FieldName format).
Port 9000 in use: Workspace may use next available port. Check Workspace settings or try 9001.