# Luxembourg Stock Exchange API
> Live equity market data for the Luxembourg Stock Exchange (LuxSE), one of Europe's leading listing venues, with quotes priced in EUR. Pull real-time quotes for specific listings — ArcelorMittal, ENGIE, RTL Group, Aperam, Reinet Investments and the rest of the equity board — with last price, day change percentage and absolute change, open, high, low, traded volume, market capitalisation and sector; run a ranked screener sorted by market cap, day change, volume or price; search the listings by company name; or read a market summary with the number of advancers, decliners and unchanged stocks, total market capitalisation and the day top gainer, top loser and most-active share. Distinct from other regional-exchange APIs on the marketplace — this surfaces the Luxembourg Stock Exchange equity board specifically.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/luxembourg-stock-api/..."
```

## Pricing
- **Free** (Free) — 1,380 calls/Mo, 2 req/s
- **Basic** ($10/Mo) — 43,700 calls/Mo, 6 req/s
- **Pro** ($28/Mo) — 167,000 calls/Mo, 16 req/s
- **Scale** ($64/Mo) — 688,000 calls/Mo, 40 req/s

## Endpoints

### Quotes

#### `GET /v1/quote` — Quotes for specific symbols

**Parameters:**
- `symbols` (query, required, string) — Comma-separated LuxSE symbols Example: `MTL,RTLL`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/luxembourg-stock-api/v1/quote?symbols=MTL%2CRTLL"
```

**Response:**
```json
{
    "data": {
        "count": 2,
        "market": "Luxembourg Stock Exchange",
        "quotes": [
            {
                "low": 61.08,
                "high": 61.08,
                "open": 61.08,
                "price": 61.08,
                "sector": "Non-Energy Minerals",
                "symbol": "LUXSE:MTL",
                "ticker": "MTL",
                "volume": 0,
                "company": "ArcelorMittal SA",
                "currency": "EUR",
                "change_abs": 0.6799999999999997,
                "market_cap": 45075047461,
                "change_percent": 1.125827814569536
            },
            {
                "low": 32.65,
                "high": 32.65,
                "open": 32.65,
                "price": 32.65,
                "sector": "Consumer Services",
                "symbol": "LUXSE:RTLL",
                "ticker": "RTLL",
                "volume": 0,
                "company": "RTL Group S.A.",
                "currency": "EUR",
                "change_abs": 0.25,
                "market_cap": 5021403908,
                "change_percent": 0.771604938271605
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:16.960Z",
        "request_id": "8e3b3bf3-06a0-4ad1-be30-978dd7f6d993"
    },
    "status": "ok",
    "message": "Quote retrieved successfully",
    "success": true
}
```

### Screener

#### `GET /v1/screener` — Ranked stock screener

**Parameters:**
- `sort` (query, optional, string) — market_cap_basic | change | volume | close Example: `market_cap_basic`
- `order` (query, optional, string) — asc | desc Example: `desc`
- `limit` (query, optional, string) — Max rows (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/luxembourg-stock-api/v1/screener?sort=market_cap_basic&order=desc&limit=20"
```

**Response:**
```json
{
    "data": {
        "sort": "market_cap_basic",
        "count": 20,
        "order": "desc",
        "total": 21,
        "market": "Luxembourg Stock Exchange",
        "stocks": [
            {
                "low": 27.28,
                "high": 27.28,
                "open": 27.28,
                "price": 27.28,
                "sector": "Utilities",
                "symbol": "LUXSE:GDFLU",
                "ticker": "GDFLU",
                "volume": 0,
                "company": "ENGIE S.A.",
                "currency": "EUR",
                "change_abs": -0.17999999999999972,
                "market_cap": 69561581060,
                "change_percent": -0.6554989075018198
            },
            {
                "low": 61.08,
                "high": 61.08,
                "open": 61.08,
                "price": 61.08,
                "sector": "Non-Energy Minerals",
                "symbol": "LUXSE:MTL",
                "ticker": "MTL",
                "volume": 0,
                "company": "ArcelorMittal SA",
                "currency": "EUR",
                "change_abs": 0.6799999999999997,
                "market_cap": 45075047461,
                "change_percent": 1.125827814569536
            },
            {
                "low": 72.7,
                "high": 72.7,
                "open": 72.7,
                "price": 72.7,
                "sector": "Producer Manufacturing",
                "symbol": "LUXSE:DE000A13SX22",
                "ticker": "D
…(truncated, see openapi.json for full schema)
```

### Search

#### `GET /v1/search` — Search listings by company name

**Parameters:**
- `q` (query, required, string) — Company name query (min 2 chars) Example: `arcelor`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/luxembourg-stock-api/v1/search?q=arcelor"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "query": "arcelor",
        "market": "Luxembourg Stock Exchange",
        "results": [
            {
                "low": 61.08,
                "high": 61.08,
                "open": 61.08,
                "price": 61.08,
                "sector": "Non-Energy Minerals",
                "symbol": "LUXSE:MTL",
                "ticker": "MTL",
                "volume": 0,
                "company": "ArcelorMittal SA",
                "currency": "EUR",
                "change_abs": 0.6799999999999997,
                "market_cap": 45075047461,
                "change_percent": 1.125827814569536
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:17.347Z",
        "request_id": "1fa9e83f-bdf1-4d45-a314-0116ef8f707a"
    },
    "status": "ok",
    "message": "Search results retrieved successfully",
    "success": true
}
```

### Market

#### `GET /v1/market` — Market summary

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/luxembourg-stock-api/v1/market"
```

**Response:**
```json
{
    "data": {
        "market": "Luxembourg Stock Exchange",
        "currency": "EUR",
        "listings": 21,
        "advancers": 13,
        "decliners": 4,
        "top_loser": {
            "symbol": "LUXSE:SCFNS",
            "company": "Socfinasia S.A.",
            "change_percent": -7.086614173228336
        },
        "unchanged": 4,
        "top_gainer": {
            "symbol": "LUXSE:FTXHG",
            "company": "Fotex Holding SE",
            "change_percent": 9.374999999999995
        },
        "most_active": {
            "symbol": "LUXSE:FTXHG",
            "volume": 22709,
            "company": "Fotex Holding SE"
        },
        "total_market_cap": 144332862860.68378
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:17.548Z",
        "request_id": "45df9d54-ec75-45b3-8bec-a0e13ec6f550"
    },
    "status": "ok",
    "message": "Market summary retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/luxembourg-stock-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "name": "Luxembourg Stock Exchange API",
        "market": "Luxembourg Stock Exchange (LuxSE)",
        "currency": "EUR",
        "endpoints": [
            {
                "path": "/v1/quote",
                "description": "Quotes for specific symbols (?symbols=MTL,RTLL)"
            },
            {
                "path": "/v1/screener",
                "description": "Ranked stocks (?sort=market_cap_basic|change|volume&order=desc&limit=)"
            },
            {
                "path": "/v1/search",
                "description": "Search listings by company name (?q=arcelor)"
            },
            {
                "path": "/v1/market",
                "description": "Market summary: advancers/decliners, total cap, top movers"
            },
            {
                "path": "/v1/meta",
                "description": "This metadata document"
            }
        ],
        "namespace": "LUXSE",
        "disclaimer": "Unofficial market data via the public TradingView screener. Not affiliated with the Luxembourg Stock Exchange or TradingView. Delayed/indicative data; not investment advice.",
        "description": "Live equity quotes, a ranked screener, company search and a market summary for the Luxembourg Stock Exchange (LuxSE), priced in EUR."
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:17.629Z",
        "request_id": "eadd0910-8b54-4fb4-9988-3126bd32451b"
    },
    "status": "ok",
    "message": "Meta",
    "su
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/luxembourg-stock-api
OpenAPI spec: https://www.oanor.com/api/luxembourg-stock-api/openapi.json
