返回 Skill 列表
extension
分类: 开发与工程无需 API Key

lseg

在通过Eikon Data API从LSEG Workspace获取金融数据时使用。涵盖cURL请求、字段发现、符号转换和时间序列数据检索。

person作者: jakexiaohubgithub

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

| 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.

References