# MOEX Moscow Exchange API
> Live multi-market data from the Moscow Exchange (MOEX), with no key. Read the live quote for any share (last, open/high/low, change, volume and value); the bond market with clean prices, yields to maturity and maturity dates (government OFZ and corporate); the value of any MOEX index (IMOEX, RTSI and the rest); the end-of-day price history; and the securities directory for shares, bonds or indices. The Russia-equities / bonds-with-yield / multi-market layer for trading dashboards, screeners and research — distinct from other exchange readers, MOEX spans shares, bonds and indices in one feed. Live from the MOEX ISS API; short cache only.

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

## Pricing
- **Free** (Free) — 13,000 calls/Mo, 3 req/s
- **Starter** ($16/Mo) — 260,000 calls/Mo, 8 req/s
- **Pro** ($45/Mo) — 1,550,000 calls/Mo, 20 req/s
- **Enterprise** ($107/Mo) — 8,200,000 calls/Mo, 60 req/s

## Endpoints

### Shares

#### `GET /v1/history` — End-of-day price history

**Parameters:**
- `secid` (query, required, string) — MOEX ticker, e.g. SBER Example: `SBER`
- `market` (query, optional, string) — shares, bonds or index (default shares) Example: `shares`
- `days` (query, optional, string) — Days (5-365, default 30) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/moex-api/v1/history?secid=SBER&market=shares&days=30"
```

**Response:**
```json
{
    "data": {
        "note": "The end-of-day price history for one MOEX security — each day's close, volume and traded value, newest first. Pass secid (e.g. SBER), market (shares, bonds or index; default shares) and days (5-365, default 30).",
        "count": 20,
        "secid": "SBER",
        "market": "shares",
        "source": "MOEX",
        "history": [
            {
                "date": "2026-06-11",
                "close": 321.2,
                "value": 3163583242.84,
                "volume": 9826768
            },
            {
                "date": "2026-06-10",
                "close": 321.88,
                "value": 7170354506.33,
                "volume": 22329203
            },
            {
                "date": "2026-06-09",
                "close": 321.02,
                "value": 8284345276.41,
                "volume": 25885632
            },
            {
                "date": "2026-06-08",
                "close": 320,
                "value": 8121926312.55,
                "volume": 25297011
            },
            {
                "date": "2026-06-05",
                "close": 322.19,
                "value": 4000280809.23,
                "volume": 12413671
            },
            {
                "date": "2026-06-04",
                "close": 322.92,
                "value": 5455432307.34,
                "volume": 16872624
            },
            {
                "date": "2026-06-03",
                "close": 323.37,

…(truncated, see openapi.json for full schema)
```

#### `GET /v1/quote` — Live quote for a share

**Parameters:**
- `secid` (query, required, string) — MOEX ticker, e.g. SBER (Sberbank), GAZP (Gazprom), LKOH Example: `SBER`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/moex-api/v1/quote?secid=SBER"
```

**Response:**
```json
{
    "data": {
        "low": 321.2,
        "high": 323.5,
        "last": 323.16,
        "name": "Сбербанк",
        "note": "The live quote for one MOEX-listed share — last price, open/high/low, previous price, percent change, today's value and volume, and lot size. Pass secid (the MOEX ticker, e.g. SBER, GAZP, LKOH). Use /v1/securities to list tickers.",
        "open": 321.3,
        "board": "TQBR",
        "secid": "SBER",
        "source": "MOEX",
        "updated": "19:00:02",
        "lot_size": 1,
        "value_today": 1065851599,
        "volume_today": 3307357,
        "change_percent": 0,
        "previous_price": 320.29
    },
    "meta": {
        "timestamp": "2026-06-15T02:11:02.258Z",
        "request_id": "7fb19d6b-6155-4db4-928e-58126fea9775"
    },
    "status": "ok",
    "message": "Quote retrieved successfully",
    "success": true
}
```

### Indices

#### `GET /v1/index` — Live value of a MOEX index

**Parameters:**
- `secid` (query, optional, string) — Index id, e.g. IMOEX, RTSI (default IMOEX) Example: `IMOEX`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/moex-api/v1/index?secid=IMOEX"
```

**Response:**
```json
{
    "data": {
        "low": 2506.57,
        "high": 2528.75,
        "name": "Индекс МосБиржи",
        "note": "The live value of one MOEX index — current level, open, previous close, day high/low and percent change. Pass secid (e.g. IMOEX for the MOEX Russia Index, RTSI for the RTS Index); defaults to IMOEX.",
        "open": 2528.75,
        "secid": "IMOEX",
        "value": 2515.33,
        "source": "MOEX",
        "updated": "19:00:11",
        "change_percent": null,
        "previous_value": 2520.88
    },
    "meta": {
        "timestamp": "2026-06-15T02:11:02.402Z",
        "request_id": "0761de8c-f8d8-421f-a26c-567ace744ad2"
    },
    "status": "ok",
    "message": "Index retrieved successfully",
    "success": true
}
```

### Bonds

#### `GET /v1/bonds` — Bond market with prices, yields & maturities

**Parameters:**
- `limit` (query, optional, string) — Results (1-100, default 30) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/moex-api/v1/bonds?limit=30"
```

**Response:**
```json
{
    "data": {
        "note": "The MOEX bond market — government (OFZ) and corporate bonds, each with its clean price, yield to maturity, maturity date, coupon and face value. Pass limit (1-100, default 30). The Russian fixed-income tape.",
        "bonds": [
            {
                "name": "ОФЗ 26207",
                "price": 93.0154,
                "secid": "SU26207RMFS9",
                "yield": 0,
                "currency": "SUR",
                "face_value": 1000,
                "coupon_value": 40.64,
                "maturity_date": "2027-02-03",
                "coupon_percent": 8.15
            },
            {
                "name": "ОФЗ 26212",
                "price": 104.12,
                "secid": "SU26212RMFS9",
                "yield": 12.71,
                "currency": "SUR",
                "face_value": 1000,
                "coupon_value": 35.15,
                "maturity_date": "2028-01-19",
                "coupon_percent": 7.05
            },
            {
                "name": "ОФЗ 26218",
                "price": 111.8131,
                "secid": "SU26218RMFS6",
                "yield": 0,
                "currency": "SUR",
                "face_value": 1000,
                "coupon_value": 42.38,
                "maturity_date": "2031-09-17",
                "coupon_percent": 8.5
            },
            {
                "name": "ОФЗ 26219",
                "price": 100.4495,
                "secid": "SU26219RMFS4",
…(truncated, see openapi.json for full schema)
```

### Reference

#### `GET /v1/securities` — Securities directory for a market

**Parameters:**
- `market` (query, optional, string) — shares, bonds or index (default shares) Example: `shares`
- `limit` (query, optional, string) — Results (1-200, default 50) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/moex-api/v1/securities?market=shares&limit=50"
```

**Response:**
```json
{
    "data": {
        "note": "The MOEX securities directory for one market — shares, bonds or index — each with its ticker and name (plus price/lot for shares, yield/maturity for bonds). Pass market (shares, bonds or index) and limit (max 200). Use a secid with the quote, history and index endpoints.",
        "count": 50,
        "market": "shares",
        "source": "MOEX",
        "securities": [
            {
                "name": "iАРТГЕН ао",
                "secid": "ABIO",
                "lot_size": 1,
                "previous_price": 54.94
            },
            {
                "name": "АбрауДюрсо",
                "secid": "ABRD",
                "lot_size": 1,
                "previous_price": 137
            },
            {
                "name": "Система ао",
                "secid": "AFKS",
                "lot_size": 1,
                "previous_price": 12.5
            },
            {
                "name": "Аэрофлот",
                "secid": "AFLT",
                "lot_size": 1,
                "previous_price": 43
            },
            {
                "name": "АЛРОСА ао",
                "secid": "ALRS",
                "lot_size": 1,
                "previous_price": 23.26
            },
            {
                "name": "АшинскийМЗ",
                "secid": "AMEZ",
                "lot_size": 1,
                "previous_price": 71.6
            },
            {
       
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Endpoints & source

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

**Response:**
```json
{
    "data": {
        "sample": {
            "imoex": 2515.33
        },
        "source": "Moscow Exchange ISS public API (iss.moex.com), keyless",
        "markets": [
            "shares",
            "bonds",
            "index"
        ],
        "service": "moex-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/bonds": "Bond market with prices, yields and maturities (limit).",
            "GET /v1/index": "Live value of one index (secid, default IMOEX).",
            "GET /v1/quote": "Live quote for one share (secid).",
            "GET /v1/history": "End-of-day price history (secid, market, days).",
            "GET /v1/securities": "Securities directory for a market (market, limit)."
        },
        "description": "Live multi-market data from the Moscow Exchange (MOEX) with no key: the live quote for any share, the bond market with prices, yields and maturities, the value of any MOEX index (IMOEX, RTSI…), the end-of-day price history, and the securities directory for shares, bonds or indices. The Russia-equities / bonds-with-yield / multi-market layer for trading dashboards and screeners. Distinct from other exchange readers — MOEX spans shares, bonds and indices with yields. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-15T02:11:02.966Z",
        "request_id": "c8b1388d-d3b6-4b15-be60-92ca4ffb95dc"
    },
    "status": "ok",
    "message": "Meta",
  
…(truncated, see openapi.json for full schema)
```


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