# Belgrade Stock Exchange (BELEX) API
> Live Serbian equity data from the Belgrade Stock Exchange (BELEX): real-time quotes for any listed stock by ticker (price, % change, intraday OHLC, volume, market cap in Serbian dinar RSD), a ranking screener for gainers, losers, most-active and top market-cap local primary listings, and the BELEX index family (BELEX 15 and BELEXline). Foreign depositary receipts are filtered out so you get only genuine Serbian companies such as Aerodrom Nikola Tesla, Messer Tehnogas, Dunav Osiguranje and Fintel Energija.

## 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/serbia-stock-api/..."
```

## Pricing
- **Free** (Free) — 1,100 calls/Mo, 2 req/s
- **Basic** ($8/Mo) — 34,500 calls/Mo, 5 req/s
- **Pro** ($26/Mo) — 142,000 calls/Mo, 14 req/s
- **Business** ($57/Mo) — 605,000 calls/Mo, 38 req/s

## Endpoints

### Quotes

#### `GET /v1/quote` — Live quote for one or more BELEX stocks

**Parameters:**
- `symbols` (query, required, string) — Comma-separated BELEX tickers (up to 20) Example: `AERO,TGAS,DNOS`

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

**Response:**
```json
{
    "data": {
        "count": 3,
        "market": "BELEX",
        "quotes": [
            {
                "low": 2098,
                "high": 2098,
                "last": 2098,
                "name": "Aerodrom Nikola Tesla AD",
                "open": 2098,
                "pe_ttm": null,
                "sector": "Transportation",
                "symbol": "AERO",
                "ticker": "BELEX:AERO",
                "volume": 20,
                "currency": "RSD",
                "change_abs": -1,
                "change_pct": -0.0476,
                "market_cap": 73484822159
            },
            {
                "low": 34501,
                "high": 34501,
                "last": 34501,
                "name": "Messer Tehnogas AD",
                "open": 34501,
                "pe_ttm": null,
                "sector": "Process Industries",
                "symbol": "TGAS",
                "ticker": "BELEX:TGAS",
                "volume": 11,
                "currency": "RSD",
                "change_abs": 0,
                "change_pct": 0,
                "market_cap": 35765735223
            },
            {
                "low": 1910,
                "high": 1910,
                "last": 1910,
                "name": "Dunav Osiguranje AD",
                "open": 1910,
                "pe_ttm": 6.431,
                "sector": "Finance",
                "symbol": "DNOS",
                "ticker": "BELEX:DNOS",
                "volume": 368,
       
…(truncated, see openapi.json for full schema)
```

### Screener

#### `GET /v1/screener` — Rank local primary listings

**Parameters:**
- `sort` (query, optional, string) — Sort field: market_cap, change or volume Example: `market_cap`
- `order` (query, optional, string) — asc or desc Example: `desc`
- `limit` (query, optional, string) — Number of results (1-100) Example: `25`

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

**Response:**
```json
{
    "data": {
        "sort": "market_cap",
        "count": 14,
        "order": "desc",
        "market": "BELEX",
        "results": [
            {
                "low": 2098,
                "high": 2098,
                "last": 2098,
                "name": "Aerodrom Nikola Tesla AD",
                "open": 2098,
                "pe_ttm": null,
                "sector": "Transportation",
                "symbol": "AERO",
                "ticker": "BELEX:AERO",
                "volume": 20,
                "currency": "RSD",
                "change_abs": -1,
                "change_pct": -0.0476,
                "market_cap": 73484822159
            },
            {
                "low": 34501,
                "high": 34501,
                "last": 34501,
                "name": "Messer Tehnogas AD",
                "open": 34501,
                "pe_ttm": null,
                "sector": "Process Industries",
                "symbol": "TGAS",
                "ticker": "BELEX:TGAS",
                "volume": 11,
                "currency": "RSD",
                "change_abs": 0,
                "change_pct": 0,
                "market_cap": 35765735223
            },
            {
                "low": 1910,
                "high": 1910,
                "last": 1910,
                "name": "Dunav Osiguranje AD",
                "open": 1910,
                "pe_ttm": 6.431,
                "sector": "Finance",
                "symbol": "DNOS",
                "tick
…(truncated, see openapi.json for full schema)
```

### Indices

#### `GET /v1/index` — Belgrade indices (BELEX family)

**Parameters:**
- `symbol` (query, optional, string) — Optional specific index symbol(s) Example: `BELEX15`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/serbia-stock-api/v1/index?symbol=BELEX15"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "market": "BELEX",
        "indices": [
            {
                "low": 1224.17,
                "high": 1224.54,
                "name": "BELEX 15 Index",
                "open": 1224.54,
                "index": "BELEX15",
                "label": "BELEX 15",
                "value": 1224.17,
                "change_abs": -0.37,
                "change_pct": -0.0302
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-15T11:16:05.776Z",
        "request_id": "ff9592ac-d9a8-44c6-aef1-958ca981ab84"
    },
    "status": "ok",
    "message": "Index retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Market metadata & endpoint guide

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

**Response:**
```json
{
    "data": {
        "market": "Belgrade Stock Exchange (BELEX)",
        "source": "TradingView screener (serbia market), keyless",
        "country": "Serbia",
        "indices": [
            "BELEX15",
            "BELEXLINE"
        ],
        "currency": "RSD",
        "examples": {
            "index": "/v1/index",
            "quote": "/v1/quote?symbols=AERO,TGAS,DNOS",
            "screener": "/v1/screener?sort=change&order=desc&limit=10"
        },
        "endpoints": {
            "/v1/index": "Belgrade indices (BELEX 15 = BELEX15, BELEXline = BELEXLINE)",
            "/v1/quote": "live quote for one or more BELEX stocks by ticker (symbols=AERO,TGAS,DNOS)",
            "/v1/screener": "rank local primary listings by market_cap | change | volume (sort, order, limit)"
        },
        "cache_ttl_ms": 20000
    },
    "meta": {
        "timestamp": "2026-06-15T11:16:05.880Z",
        "request_id": "6ce584f3-7868-4a6b-9778-85aa8768765f"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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