# BloFin Perpetual Futures Exchange API
> Live market data for the BloFin perpetual-futures exchange, with no key. List every perpetual instrument with contract specs and max leverage; pull a 24h ticker (last/bid/ask, 24h high/low/open, volume); read the live order book; stream recent public trades; fetch OHLC candles across many intervals; and get the latest funding rate. Symbols are OKX-style instrument ids (BTC-USDT, ETH-USDT) — ideal for derivatives dashboards, funding-rate monitors and charting across 490+ markets.

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

## Pricing
- **Free** (Free) — 1,880 calls/Mo, 4 req/s
- **Basic** ($16/Mo) — 53,800 calls/Mo, 9 req/s
- **Pro** ($45/Mo) — 217,000 calls/Mo, 21 req/s
- **Business** ($96/Mo) — 870,000 calls/Mo, 52 req/s

## Endpoints

### Markets

#### `GET /v1/candles` — OHLC candles

**Parameters:**
- `instId` (query, required, string) — BloFin instrument id Example: `BTC-USDT`
- `bar` (query, optional, string) — Candle size (1m,5m,15m,1H,4H,1D) Example: `1H`
- `limit` (query, optional, string) — Candles (1-300) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/blofin-api/v1/candles?instId=BTC-USDT&bar=1H&limit=100"
```

**Response:**
```json
{
    "data": {
        "bar": "1H",
        "count": 100,
        "candles": [
            {
                "low": 65810.3,
                "high": 65984.7,
                "open": 65876.1,
                "close": 65911.1,
                "volume": 60082,
                "timestamp": "1781521200000",
                "volume_currency": 60.0824
            },
            {
                "low": 65545.2,
                "high": 65930,
                "open": 65559.9,
                "close": 65884.7,
                "volume": 69932,
                "timestamp": "1781517600000",
                "volume_currency": 69.9329
            },
            {
                "low": 65467.1,
                "high": 65737.5,
                "open": 65620,
                "close": 65559.8,
                "volume": 139236,
                "timestamp": "1781514000000",
                "volume_currency": 139.2366
            },
            {
                "low": 65580.4,
                "high": 65763.7,
                "open": 65642.4,
                "close": 65620,
                "volume": 74913,
                "timestamp": "1781510400000",
                "volume_currency": 74.9139
            },
            {
                "low": 65605.2,
                "high": 65975,
                "open": 65783.4,
                "close": 65642.4,
                "volume": 155111,
                "timestamp": "1781506800000",
                "volume_currency": 155.1111
            },
         
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/funding` — Latest funding rate

**Parameters:**
- `instId` (query, required, string) — BloFin instrument id Example: `BTC-USDT`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/blofin-api/v1/funding?instId=BTC-USDT"
```

**Response:**
```json
{
    "data": {
        "inst_id": "BTC-USDT",
        "funding_rate": -8.131641061445447e-5,
        "funding_time": "1781539200000"
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:36.835Z",
        "request_id": "c5845ac8-7d69-4c4e-bdff-57ec69a9a9e1"
    },
    "status": "ok",
    "message": "Funding retrieved successfully",
    "success": true
}
```

#### `GET /v1/instruments` — List every perpetual instrument with specs

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

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

**Response:**
```json
{
    "data": {
        "count": 492,
        "venue": "blofin",
        "instruments": [
            {
                "base": "BTC",
                "quote": "USDT",
                "state": "live",
                "inst_id": "BTC-USDT",
                "min_size": 0.1,
                "tick_size": 0.1,
                "max_leverage": 150,
                "contract_value": 0.001
            },
            {
                "base": "ETH",
                "quote": "USDT",
                "state": "live",
                "inst_id": "ETH-USDT",
                "min_size": 0.1,
                "tick_size": 0.01,
                "max_leverage": 150,
                "contract_value": 0.01
            },
            {
                "base": "SPCX",
                "quote": "USDT",
                "state": "live",
                "inst_id": "SPCX-USDT",
                "min_size": 1,
                "tick_size": 0.01,
                "max_leverage": 20,
                "contract_value": 0.01
            },
            {
                "base": "ASML",
                "quote": "USDT",
                "state": "live",
                "inst_id": "ASML-USDT",
                "min_size": 1,
                "tick_size": 0.01,
                "max_leverage": 20,
                "contract_value": 0.01
            },
            {
                "base": "GLW",
                "quote": "USDT",
                "state": "live",
                "inst_id": "GLW-USDT",
                "min_size"
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/orderbook` — Live order book

**Parameters:**
- `instId` (query, required, string) — BloFin instrument id Example: `ETH-USDT`
- `size` (query, optional, string) — Levels (1-100) Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/blofin-api/v1/orderbook?instId=ETH-USDT&size=10"
```

**Response:**
```json
{
    "data": {
        "asks": [
            {
                "size": 3344,
                "price": 1740.86
            },
            {
                "size": 1275,
                "price": 1740.87
            },
            {
                "size": 1235,
                "price": 1740.88
            },
            {
                "size": 976,
                "price": 1740.89
            },
            {
                "size": 1918,
                "price": 1740.9
            },
            {
                "size": 1166,
                "price": 1740.91
            },
            {
                "size": 2724,
                "price": 1740.92
            },
            {
                "size": 1720,
                "price": 1740.93
            },
            {
                "size": 1863,
                "price": 1740.94
            },
            {
                "size": 1483,
                "price": 1740.95
            }
        ],
        "bids": [
            {
                "size": 28304,
                "price": 1740.85
            },
            {
                "size": 2426,
                "price": 1740.84
            },
            {
                "size": 1348,
                "price": 1740.83
            },
            {
                "size": 2809,
                "price": 1740.82
            },
            {
                "size": 1797,
                "price": 1740.81
            },
            {
                "size": 1361,
               
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/ticker` — 24h ticker for an instrument

**Parameters:**
- `instId` (query, required, string) — BloFin instrument id Example: `BTC-USDT`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/blofin-api/v1/ticker?instId=BTC-USDT"
```

**Response:**
```json
{
    "data": {
        "ask": 65917.9,
        "bid": 65917.8,
        "last": 65911.1,
        "inst_id": "BTC-USDT",
        "low_24h": 63650.9,
        "ask_size": 4834,
        "bid_size": 8426,
        "high_24h": 65994.4,
        "open_24h": 64513.9,
        "timestamp": "1781522135914",
        "volume_24h": 3836979.3,
        "volume_currency_24h": 3836.9793
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:37.645Z",
        "request_id": "416a9942-691a-4def-8ffc-024ab5f43ef3"
    },
    "status": "ok",
    "message": "Ticker retrieved successfully",
    "success": true
}
```

#### `GET /v1/trades` — Recent public trades

**Parameters:**
- `instId` (query, required, string) — BloFin instrument id Example: `BTC-USDT`
- `limit` (query, optional, string) — Number of trades (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/blofin-api/v1/trades?instId=BTC-USDT&limit=25"
```

**Response:**
```json
{
    "data": {
        "count": 25,
        "trades": [
            {
                "side": "sell",
                "size": 7,
                "price": 65911.1,
                "trade_id": "47123564578",
                "timestamp": "1781522135905"
            },
            {
                "side": "buy",
                "size": 5,
                "price": 65894.7,
                "trade_id": "47123562840",
                "timestamp": "1781522134068"
            },
            {
                "side": "sell",
                "size": 22.7,
                "price": 65896,
                "trade_id": "47123562265",
                "timestamp": "1781522132903"
            },
            {
                "side": "sell",
                "size": 12,
                "price": 65898.5,
                "trade_id": "47123560990",
                "timestamp": "1781522130294"
            },
            {
                "side": "buy",
                "size": 14,
                "price": 65894.8,
                "trade_id": "47123560386",
                "timestamp": "1781522129069"
            },
            {
                "side": "sell",
                "size": 19.4,
                "price": 65894.7,
                "trade_id": "47123558750",
                "timestamp": "1781522122244"
            },
            {
                "side": "sell",
                "size": 0.7,
                "price": 65894.7,
                "trade_id": "47123558548",
                "timestamp"
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "bars": [
            "1m",
            "3m",
            "5m",
            "15m",
            "30m",
            "1H",
            "2H",
            "4H",
            "6H",
            "12H",
            "1D",
            "1W"
        ],
        "venue": "BloFin",
        "source": "BloFin public REST (openapi.blofin.com/api/v1), keyless",
        "examples": {
            "ticker": "/v1/ticker?instId=BTC-USDT",
            "trades": "/v1/trades?instId=BTC-USDT&limit=10",
            "candles": "/v1/candles?instId=BTC-USDT&bar=1H&limit=100",
            "funding": "/v1/funding?instId=BTC-USDT",
            "orderbook": "/v1/orderbook?instId=ETH-USDT&size=10",
            "instruments": "/v1/instruments?quote=USDT"
        },
        "endpoints": {
            "/v1/ticker": "24h ticker: last/bid/ask, high/low/open, volume (instId=BTC-USDT)",
            "/v1/trades": "recent public trades (instId, limit)",
            "/v1/candles": "OHLC candles (instId, bar, limit)",
            "/v1/funding": "latest funding rate (instId)",
            "/v1/orderbook": "live order book (instId, size)",
            "/v1/instruments": "list every perpetual instrument with specs & max leverage (filter quote)"
        },
        "instrument": "perpetual futures",
        "cache_ttl_ms": 5000
    },
    "meta": {
        "timestamp": "2026-06-15T11:15:38.138Z",
        "request_id": "c6c00bfa-41c4-405e-a822-a1f2e802342f"
    },
    "status": "ok",
    "message": "Meta",

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


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