Market list

SQL API

Our ClickHouse SQL interface provides direct access to normalized market metadata through three optimized views: market_spot, market_future, and market_option. These tables enable sophisticated filtering and joins impossible via REST, empowering complex analytics workflows.


api.market_spot

Spot markets (e.g., BTC/USD)

Column
Type
Description

exchange

String

Exchange name (e.g., "binance")

market_symbol

String

Normalized symbol (e.g., "BTC-USDT")

base_asset

String

Base asset (e.g., "BTC")

quote_asset

String

Quote asset (e.g., "USDT")

exchange_specific_symbol

String

Native exchange symbol (e.g., "BTCUSDT")

Use Case Example Find all spot markets with USDT quote pairs on Binance or Kraken:

SELECT exchange, market_symbol, base_asset, quote_asset  
FROM api.market_spot  
WHERE quote_asset = 'USDT'  
  AND exchange IN ('binance', 'kraken')  

List all exchanges:

SELECT distinct exchange FROM api.market_spot

api.market_future

Futures contracts (e.g., BTC-USD-PERP)

Column
Type
Description

exchange

String

Exchange name

market_symbol

String

Normalised symbol (e.g., "BTC-USDT-PERP")

underlying_asset

String

Underlying asset (e.g., "BTC")

quote_asset

String

Quote asset (e.g., "USDT")

settling_asset

String

Settlement asset (e.g., "BTC")

denomination_asset

String

Margin denomination (e.g., "USDT")

expiration

DateTime64(9)

Contract expiry (null for perpetuals)

contract_size

Decimal(38,18)

Size per contract (e.g., 0.001)

contract_type

String

"INVERSE" or "LINEAR"

future_type

String

"PERPETUAL" or "EXPIRING"

exchange_specific_symbol

String

Native exchange symbol (e.g., "BTCUSDT_PERP")

Use Case Example List perpetual BTC futures with linear pricing:

SELECT  
  exchange,  
  market_symbol,  
  underlying_asset,  
  contract_size  
FROM api.market_future  
WHERE underlying_asset = 'BTC'  
  AND future_type = 'PERPETUAL'  
  AND contract_type = 'LINEAR'  

api.market_option

Options contracts (e.g., BTC-USDT-2025-08-02-112400-C)

Column
Type
Description

exchange

String

Exchange name

market_symbol

String

Normalised symbol (e.g., "BTC-USDT-30000-C")

underlying_asset

String

Underlying asset (e.g., "BTC")

quote_asset

String

Quote asset (e.g., "USDT")

settling_asset

String

Settlement asset (e.g., "BTC")

expiration

DateTime64(9)

Option expiry timestamp

strike

Decimal(38,18)

Strike price (e.g., 30000)

contract_size

Decimal(38,18)

Size per contract (e.g., 0.1)

contract_type

String

"INVERSE" or "LINEAR"

option_type

String

"CALL" or "PUT"

exchange_specific_symbol

String

Native exchange symbol (e.g., "BTC-30JUN23-30000-C")

Use Case Example Find all BTC call options expiring in Q3 2024:

SELECT
  *
FROM api.market_option
WHERE underlying_asset = 'BTC'
  AND option_type = 'CALL'
  AND toYear(expiration) = 2024
    and toQuarter(expiration) = 3
order by expiration, strike

Here is the doc of the handy toQuarter function : https://clickhouse.com/docs/sql-reference/functions/date-time-functions#toQuarter

Rest API

Get Spot Markets

get

This endpoint allows you to obtain the full list of spot markets

Authorizations
Responses
200

All spot markets

application/json
get
/market/spot
GET /market/spot HTTP/1.1
Host: api.koinju.io
Authorization: Basic username:password
Accept: */*
200

All spot markets

[
  [
    {
      "exchange": "huobi",
      "market_symbol": "DRGN-USDT",
      "base_asset": "DRGN",
      "quote_asset": "USDT",
      "exchange_specific_symbol": "drgnusdt"
    },
    {
      "exchange": "binance",
      "market_symbol": "BTC-USDT",
      "base_asset": "BTC",
      "quote_asset": "USDT",
      "exchange_specific_symbol": "btcusdt"
    }
  ]
]

Get Future Markets

get

Returns expirable future and perpetual swaps.

Authorizations
Responses
200

OK

application/json
get
/market/future
GET /market/future HTTP/1.1
Host: api.koinju.io
Authorization: Basic username:password
Accept: */*
200

OK

[
  [
    {
      "exchange": "binance",
      "market_symbol": "PHA-USDT-PERP",
      "underlying_asset": "PHA",
      "quote_asset": "USDT",
      "settling_asset": "USDT",
      "expiration": null,
      "contract_size": 1,
      "contract_type": "LINEAR",
      "future_type": "PERPETUAL",
      "exchange_specific_symbol": "PHAUSDT"
    },
    {
      "exchange": "binance",
      "market_symbol": "SUI-USD-PERP",
      "underlying_asset": "SUI",
      "quote_asset": "USD",
      "settling_asset": "SUI",
      "denomination_asset": "USD",
      "expiration": "2100-12-25T08:00:00Z",
      "contract_size": 10,
      "contract_type": "INVERSE",
      "future_type": "PERPETUAL",
      "exchange_specific_symbol": "SUIUSD_PERP"
    }
  ]
]

Get active Option Markets

get
Authorizations
Responses
200

OK

application/json
get
/market/option/active
GET /market/option/active HTTP/1.1
Host: api.koinju.io
Authorization: Basic username:password
Accept: */*
200

OK

[
  [
    {
      "exchange": "deribit",
      "market_symbol": "BTC-BTC-29DEC23-40000-P",
      "expiration": "2023-12-29T00:00:00Z",
      "underlying_asset": "BTC",
      "quote_asset": "BTC",
      "settling_asset": "BTC",
      "denomination_asset": "BTC",
      "contract_size": 1,
      "contract_type": "LINEAR",
      "option_type": "PUT",
      "exchange_symbol": "BTC-29DEC23-40000-P"
    },
    {
      "exchange": "deribit",
      "market_symbol": "ETH-BTC-29DEC23-3000-C",
      "expiration": "2023-12-29T00:00:00Z",
      "underlying_asset": "ETH",
      "quote_asset": "BTC",
      "settling_asset": "BTC",
      "denomination_asset": "BTC",
      "contract_size": 1,
      "contract_type": "LINEAR",
      "option_type": "CALL",
      "exchange_symbol": "ETH-29DEC23-3000-C"
    }
  ]
]

Get all Option Markets

get

This endpoint returns all option markets, including both active and expired options. It is useful for retrieving a comprehensive list of all options available across exchanges.

This endpoint is limited to 10000 instruments that expired before the expired_before parameter in descending order of expiration.

Authorizations
Query parameters
exchangestring · enumRequired

Filter by exchange name. Example: 'deribit', 'delta'

Possible values:
expired_beforestring · date-timeRequired

Filter options that expired before a specific date. Format: ISO 8601 date-time (e.g., '2023-12-31T23:59:59Z').

Responses
200

OK

application/json
get
/market/option/all
GET /market/option/all?exchange=deribit&expired_before=2025-10-30T17%3A57%3A00.608Z HTTP/1.1
Host: api.koinju.io
Authorization: Basic username:password
Accept: */*
200

OK

[
  [
    {
      "exchange": "deribit",
      "market_symbol": "BTC-BTC-29DEC23-40000-P",
      "expiration": "2023-12-29T00:00:00Z",
      "underlying_asset": "BTC",
      "quote_asset": "BTC",
      "settling_asset": "BTC",
      "denomination_asset": "BTC",
      "contract_size": 1,
      "contract_type": "LINEAR",
      "option_type": "PUT",
      "exchange_symbol": "BTC-29DEC23-40000-P"
    },
    {
      "exchange": "deribit",
      "market_symbol": "ETH-BTC-29DEC23-3000-C",
      "expiration": "2023-12-29T00:00:00Z",
      "underlying_asset": "ETH",
      "quote_asset": "BTC",
      "settling_asset": "BTC",
      "denomination_asset": "BTC",
      "contract_size": 1,
      "contract_type": "LINEAR",
      "option_type": "CALL",
      "exchange_symbol": "ETH-29DEC23-3000-C"
    }
  ]
]

Last updated

Was this helpful?