# Bucharest Stock Exchange (BVB) API
> Live Romanian equity data from the Bucharest Stock Exchange (BVB): real-time quotes for any listed stock by ticker (price, % change, intraday OHLC, volume, market cap in RON), a ranking screener for gainers, losers, most-active and top market-cap local primary listings, and the BET index family (BET, BETXT and related benchmarks). Foreign depositary receipts are filtered out so you get only genuine Romanian companies.

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

## Pricing
- **Free** (Free) — 1,500 calls/Mo, 2 req/s
- **Basic** ($11/Mo) — 42,000 calls/Mo, 5 req/s
- **Pro** ($35/Mo) — 175,000 calls/Mo, 15 req/s
- **Business** ($79/Mo) — 720,000 calls/Mo, 40 req/s

## Endpoints

### Quotes

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

**Parameters:**
- `symbols` (query, required, string) — Comma-separated BVB tickers (up to 20) Example: `TLV,SNP,H2O`

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

**Response:**
```json
{
    "data": {
        "count": 3,
        "market": "BVB",
        "quotes": [
            {
                "low": 38.3,
                "high": 39.06,
                "last": 38.98,
                "name": "Banca Transilvania SA",
                "open": 38.3,
                "pe_ttm": 9.2567,
                "sector": "Finance",
                "symbol": "TLV",
                "ticker": "BVB:TLV",
                "volume": 886672,
                "currency": "RON",
                "change_abs": 0.78,
                "change_pct": 2.0419,
                "market_cap": 41908262567
            },
            {
                "low": 1.039,
                "high": 1.051,
                "last": 1.049,
                "name": "OMV Petrom SA",
                "open": 1.045,
                "pe_ttm": 21.6736,
                "sector": "Energy Minerals",
                "symbol": "SNP",
                "ticker": "BVB:SNP",
                "volume": 3200692,
                "currency": "RON",
                "change_abs": 0.004,
                "change_pct": 0.3828,
                "market_cap": 65364728166
            },
            {
                "low": 174.4,
                "high": 176,
                "last": 175,
                "name": "S.P.E.E.H. Hidroelectrica S.A.",
                "open": 176,
                "pe_ttm": 19.2564,
                "sector": "Utilities",
                "symbol": "H2O",
                "ticker": "BVB:H2O",
                "volume": 13660
…(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/romania-stock-api/v1/screener?sort=market_cap&order=desc&limit=25"
```

**Response:**
```json
{
    "data": {
        "sort": "market_cap",
        "count": 25,
        "order": "desc",
        "market": "BVB",
        "results": [
            {
                "low": 174.4,
                "high": 176,
                "last": 175,
                "name": "S.P.E.E.H. Hidroelectrica S.A.",
                "open": 176,
                "pe_ttm": 19.2564,
                "sector": "Utilities",
                "symbol": "H2O",
                "ticker": "BVB:H2O",
                "volume": 13660,
                "currency": "RON",
                "change_abs": -1,
                "change_pct": -0.5682,
                "market_cap": 78715446472
            },
            {
                "low": 1.039,
                "high": 1.051,
                "last": 1.049,
                "name": "OMV Petrom SA",
                "open": 1.045,
                "pe_ttm": 21.6736,
                "sector": "Energy Minerals",
                "symbol": "SNP",
                "ticker": "BVB:SNP",
                "volume": 3200692,
                "currency": "RON",
                "change_abs": 0.004,
                "change_pct": 0.3828,
                "market_cap": 65364728166
            },
            {
                "low": 13.24,
                "high": 13.44,
                "last": 13.3,
                "name": "Societatea Nationala de Gaze Naturale Romgaz S.A.",
                "open": 13.26,
                "pe_ttm": 15.2174,
                "sector": "Energy Minerals",
        
…(truncated, see openapi.json for full schema)
```

### Indices

#### `GET /v1/index` — BVB index family (BET, BETXT, …)

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

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

**Response:**
```json
{
    "data": {
        "count": 1,
        "market": "BVB",
        "indices": [
            {
                "low": 30161.46,
                "high": 30422.22,
                "name": "Bucharest Exchange Trading Index",
                "open": 30161.46,
                "index": "BET",
                "value": 30364.13,
                "change_abs": 202.67,
                "change_pct": 0.672
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:21.861Z",
        "request_id": "f7b38192-31a6-47c9-bf30-3919b00385f8"
    },
    "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/romania-stock-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "market": "Bucharest Stock Exchange (BVB)",
        "source": "TradingView screener (romania market), keyless",
        "country": "Romania",
        "indices": [
            "BET",
            "BET-TR",
            "BETPlus",
            "BET-NG",
            "BET-FI",
            "BETAeRO",
            "BETXT",
            "BETXT-TR"
        ],
        "currency": "RON",
        "examples": {
            "index": "/v1/index",
            "quote": "/v1/quote?symbols=TLV,SNP,H2O",
            "screener": "/v1/screener?sort=change&order=desc&limit=10"
        },
        "endpoints": {
            "/v1/index": "BVB index family (BET, BET-TR, BETPlus, BET-NG, BET-FI, BETAeRO, …)",
            "/v1/quote": "live quote for one or more BVB stocks by ticker (symbols=TLV,SNP,H2O)",
            "/v1/screener": "rank local primary listings by market_cap | change | volume (sort, order, limit)"
        },
        "cache_ttl_ms": 20000
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:21.956Z",
        "request_id": "a3d8b1fe-0771-4eda-9810-a69feb78159f"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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