Claude-skill-registry-data 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.
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/lseg" ~/.claude/skills/majiayu000-claude-skill-registry-data-lseg && rm -rf "$T"
data/lseg/SKILL.mdLSEG 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
in search bar, select "Eikon Data API" checkboxAPPKEY
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 |
|---|---|
| Company name |
| Closing price |
| Opening price |
| Day high |
| Day low |
| Trading volume |
| P/E ratio |
| Market capitalization |
| Employee count |
| HQ country |
| GICS sector |
Vessels (maritime)
| Field | Description |
|---|---|
| IMO number |
| Vessel name |
| Deadweight tonnage |
| Cubic capacity |
| Position timestamp |
| Longitude |
| Latitude |
| Current draught |
| Speed |
| Heading |
| Destination port |
| Navigation status |
Trade flows (vessels)
| Field | Description |
|---|---|
| Flow ID |
| Loading port |
| Loading date |
| Discharge port |
| Discharge date |
| Commodity |
| Volume |
| Charterer |
Helper scripts
This skill includes helper scripts in
.claude/skills/lseg/scripts/:
| Script | Purpose |
|---|---|
| General DataGrid queries |
| Identifier conversion |
| 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.