# EXMO Exchange API
> Live spot market data from EXMO, a European/CIS crypto exchange, served straight from its public order books — no key on the data, nothing cached, nothing stored. Look up any market for its last price, best bid/ask and spread, 24h high/low/average and base/quote volume; rank every market for a quote currency by 24h turnover; list the tradable pairs with their base, quote and limits; or pull live order-book depth with the running spread. Markets are addressed BASE_QUOTE (BTC_UAH). This is the EXMO venue specifically — a distinct multi-fiat price feed that quotes against the Ukrainian hryvnia (UAH), Polish złoty (PLN), euro, Brazilian real and US dollar as well as USDT, ideal for UAH/PLN price discovery and Eastern-European-market arbitrage, separate from the USD/USDT-only exchange APIs in the catalogue.

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

## Pricing
- **Free** (Free) — 21,000 calls/Mo, 3 req/s
- **Starter** ($8/Mo) — 272,000 calls/Mo, 10 req/s
- **Growth** ($24/Mo) — 1,240,000 calls/Mo, 25 req/s
- **Scale** ($56/Mo) — 4,320,000 calls/Mo, 50 req/s

## Endpoints

### Ticker

#### `GET /v1/ticker` — Ticker for one market

**Parameters:**
- `market` (query, optional, string) — Market as BTC_UAH Example: `BTC_UAH`
- `base` (query, optional, string) — Base asset (with quote=) Example: `ETH`
- `quote` (query, optional, string) — Quote currency (UAH/PLN/EUR/USD/USDT…) Example: `UAH`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exmo-api/v1/ticker?market=BTC_UAH&base=ETH&quote=UAH"
```

**Response:**
```json
{
    "data": {
        "ask": 3031415.06,
        "bid": 2899486.43,
        "base": "BTC",
        "last": 2967598.54,
        "quote": "UAH",
        "market": "BTC_UAH",
        "source": "EXMO",
        "spread": 131928.63,
        "avg_24h": 2973721.11992117,
        "low_24h": 2899486.42,
        "high_24h": 3044000,
        "base_volume_24h": 117.7022324,
        "quote_volume_24h": 349292973.05
    },
    "meta": {
        "timestamp": "2026-06-11T07:45:05.294Z",
        "request_id": "8622fbde-caa6-4ed9-a449-b7ed037da713"
    },
    "status": "ok",
    "message": "Ticker retrieved successfully",
    "success": true
}
```

### Tickers

#### `GET /v1/tickers` — All markets for a quote ranked by 24h turnover

**Parameters:**
- `quote` (query, optional, string) — Quote currency Example: `UAH`
- `limit` (query, optional, string) — Max results (1-400) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exmo-api/v1/tickers?quote=UAH&limit=50"
```

**Response:**
```json
{
    "data": {
        "count": 3,
        "quote": "UAH",
        "source": "EXMO",
        "tickers": [
            {
                "ask": 3031415.06,
                "bid": 2899486.43,
                "base": "BTC",
                "last": 2970000,
                "quote": "UAH",
                "market": "BTC_UAH",
                "spread": 131928.63,
                "avg_24h": 2973721.11992117,
                "low_24h": 2899486.42,
                "high_24h": 3044000,
                "base_volume_24h": 117.7022324,
                "quote_volume_24h": 349292973.05
            },
            {
                "ask": 80008.98,
                "bid": 76600.01,
                "base": "ETH",
                "last": 78314.06,
                "quote": "UAH",
                "market": "ETH_UAH",
                "spread": 3408.97,
                "avg_24h": 78278.95850184,
                "low_24h": 77964.4,
                "high_24h": 78645.4,
                "base_volume_24h": 110.32575208,
                "quote_volume_24h": 8624475.16
            },
            {
                "ask": 47.7597,
                "bid": 47.0239,
                "base": "USDT",
                "last": 47.4,
                "quote": "UAH",
                "market": "USDT_UAH",
                "spread": 0.7358,
                "avg_24h": 47.37307651,
                "low_24h": 46.6597,
                "high_24h": 47.9769,
                "base_volume_24h": 175317.66793628,
                "quot
…(truncated, see openapi.json for full schema)
```

### Markets

#### `GET /v1/markets` — Tradable pairs with base/quote and limits

**Parameters:**
- `quote` (query, optional, string) — Filter by quote currency Example: `UAH`

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

**Response:**
```json
{
    "data": {
        "count": 3,
        "quote": "UAH",
        "source": "EXMO",
        "markets": [
            {
                "base": "BTC",
                "quote": "UAH",
                "market": "BTC_UAH",
                "max_price": 20000000,
                "min_price": 1,
                "max_quantity": 1000,
                "min_quantity": 2.0e-5
            },
            {
                "base": "ETH",
                "quote": "UAH",
                "market": "ETH_UAH",
                "max_price": 1000000,
                "min_price": 0.01,
                "max_quantity": 5000,
                "min_quantity": 0.0005
            },
            {
                "base": "USDT",
                "quote": "UAH",
                "market": "USDT_UAH",
                "max_price": 3000,
                "min_price": 1,
                "max_quantity": 500000,
                "min_quantity": 1
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-11T07:45:05.506Z",
        "request_id": "d700fe20-48fa-4a8a-bbbf-5e4c4eb4b4b4"
    },
    "status": "ok",
    "message": "Markets retrieved successfully",
    "success": true
}
```

### Book

#### `GET /v1/book` — Live order-book depth with running spread

**Parameters:**
- `market` (query, optional, string) — Market as BTC_UAH Example: `BTC_UAH`
- `limit` (query, optional, string) — Depth per side (1-100) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exmo-api/v1/book?market=BTC_UAH&limit=20"
```

**Response:**
```json
{
    "data": {
        "asks": [
            {
                "price": 3031415.06,
                "amount": 0.00527
            },
            {
                "price": 3031434.73,
                "amount": 0.00086
            },
            {
                "price": 3130402.18,
                "amount": 0.000852
            },
            {
                "price": 3150000,
                "amount": 0.0002
            },
            {
                "price": 3160039.86,
                "amount": 0.00062961
            },
            {
                "price": 3220000,
                "amount": 0.00535029
            },
            {
                "price": 3232534.8,
                "amount": 0.000824
            },
            {
                "price": 3250000,
                "amount": 0.0002
            },
            {
                "price": 3322500,
                "amount": 0.0002
            },
            {
                "price": 3328047.79,
                "amount": 0.000725
            },
            {
                "price": 3393000,
                "amount": 0.0002
            },
            {
                "price": 3441669.72,
                "amount": 0.00081
            },
            {
                "price": 3466060,
                "amount": 0.00017
            },
            {
                "price": 3530000,
                "amount": 0.00127949
            },
            {
                "price": 3550807.84,
                "amount": 0.0
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "Markets are BASE_QUOTE (BTC_UAH). The default quote is the Ukrainian hryvnia (UAH); PLN, EUR, BRL, USD, USDT and others are also available. quote_volume_24h is EXMO's vol_curr (quote turnover). EXMO does not report an open price, so no 24h change is given — high/low/avg describe the day's range.",
        "source": "EXMO public API (api.exmo.com/v1.1, live)",
        "service": "exmo-api",
        "endpoints": {
            "GET /v1/book": "Live order-book depth — best bid/ask and spread (market=BTC_UAH, limit=20).",
            "GET /v1/meta": "This document.",
            "GET /v1/ticker": "Ticker for one market (market=BTC_UAH or base=BTC&quote=UAH).",
            "GET /v1/markets": "Tradable pairs with base/quote and limits (quote=UAH optional).",
            "GET /v1/tickers": "All markets for a quote ranked by 24h turnover (quote=UAH, limit=50)."
        },
        "description": "Live spot market data from EXMO, a European/CIS crypto exchange. The ticker endpoint returns a market's last price, best bid/ask, 24h high/low/average and base/quote volume; the tickers endpoint ranks every market for a quote currency by 24h turnover; the markets endpoint lists tradable pairs with base/quote and limits; the book endpoint returns live order-book depth. Live, no key, nothing stored. A distinct multi-fiat venue quoting against UAH, PLN, EUR, BRL and USD as well as USDT — useful for Ukrainian-hryvnia and Polish-złoty price discovery, separat
…(truncated, see openapi.json for full schema)
```


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