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.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
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"
manifest: data/lseg/SKILL.md
source content

LSEG Workspace Data API

Access financial, vessel, and commodity data from LSEG Workspace via the Eikon Data API.

Prerequisites

  1. LSEG Workspace must be running on your machine (exposes local proxy on port 9000)
  2. App Key - generate via Workspace: type
    APPKEY
    in 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

FieldDescription
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)

FieldDescription
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)

FieldDescription
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/
:

ScriptPurpose
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

LimitValue
Requests per second5
Requests per day10,000
Data per minute50 MB
Data per day5 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.

References