Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tiagosiebler/kucoin-api/llms.txt

Use this file to discover all available pages before exploring further.

The FuturesClient exposes a full suite of market-data methods for the KuCoin Futures exchange. These endpoints are primarily public (no authentication required) and return real-time and historical contract information — symbols, tickers, order books, trade history, candlestick data, mark prices, interest rates, premium indexes, and platform-wide volume statistics. Use these methods to build dashboards, trading bots, or data pipelines without needing API credentials.

Service Status

getServiceStatus()

Returns the current operational status of the KuCoin Futures API service.
getServiceStatus(): Promise<APISuccessResponse<ServiceStatus>>
status
string
Service status string, e.g. "open" or "close".
msg
string
Human-readable message describing the current service state.
const status = await client.getServiceStatus();
console.log(status.data.status); // "open"

Symbols

getSymbols()

Returns a list of all active tradable futures contracts and their key parameters.
getSymbols(): Promise<APISuccessResponse<FuturesSymbolInfo[]>>
symbol
string
Unique symbol identifier, e.g. XBTUSDTM.
rootSymbol
string
Root symbol, e.g. XBTUSDM.
type
"FFWCSX" | "FFICSX"
Contract type: perpetual (FFWCSX) or futures (FFICSX).
tickSize
number
Minimum price increment.
lotSize
number
Minimum order quantity increment (lots).
multiplier
number
Value of one contract lot in base currency.
markPrice
number
Current mark price.
maxLeverage
number
Maximum allowed leverage.
status
string
Contract status: Open, Paused, Closed, etc.
fundingFeeRate
number
Current funding fee rate.
isInverse
boolean
Whether the contract is inverse (coin-margined).
const client = new FuturesClient();
const symbols = await client.getSymbols();
console.log(symbols.data.length); // number of active contracts

getSymbol(params)

Returns contract details for a single specified symbol.
getSymbol(params: { symbol: string }): Promise<APISuccessResponse<FuturesSymbolInfo>>
symbol
string
required
The futures symbol, e.g. XBTUSDTM.
const info = await client.getSymbol({ symbol: 'XBTUSDTM' });
console.log(info.data.multiplier); // e.g. 0.001

Tickers

getTicker(params)

Returns the latest trade price, best bid/ask, and related market statistics for a single symbol.
getTicker(params: { symbol: string }): Promise<APISuccessResponse<TickerDetail>>
symbol
string
required
The futures symbol to query, e.g. XBTUSDM.
symbol
string
Contract symbol.
price
string
Last filled price.
size
number
Last filled quantity.
bestBidPrice
string
Best bid price.
bestBidSize
number
Best bid size.
bestAskPrice
string
Best ask price.
bestAskSize
number
Best ask size.
tradeId
string
Last transaction ID.
ts
number
Fill timestamp in nanoseconds.
sequence
number
Sequence number for ordering.
import { FuturesClient } from 'kucoin-api';

const client = new FuturesClient();

const ticker = await client.getTicker({ symbol: 'XBTUSDM' });
console.log('Last price:', ticker.data.price);
console.log('Best bid:', ticker.data.bestBidPrice);
console.log('Best ask:', ticker.data.bestAskPrice);

getTickers()

Returns ticker data for all active futures symbols in a single call.
getTickers(): Promise<APISuccessResponse<TickerDetail[]>>
const allTickers = await client.getTickers();
allTickers.data.forEach(t => console.log(t.symbol, t.price));

Order Book

getFullOrderBookLevel2(params)

Returns the full Level 2 order book snapshot (all price levels) aggregated by price for the given symbol.
getFullOrderBookLevel2(params: { symbol: string }): Promise<APISuccessResponse<FullOrderBookDetail>>
symbol
string
required
Futures contract symbol.
symbol
string
Contract symbol.
sequence
number
Order book sequence number.
asks
[number, number][]
Array of [price, quantity] ask levels.
bids
[number, number][]
Array of [price, quantity] bid levels.
ts
number
Snapshot timestamp.

getPartOrderBookLevel2Depth20(params)

Returns the top 20 bid and ask price levels from the Level 2 order book.
getPartOrderBookLevel2Depth20(params: { symbol: string }): Promise<APISuccessResponse<FullOrderBookDetail>>
symbol
string
required
Futures contract symbol.

getPartOrderBookLevel2Depth100(params)

Returns the top 100 bid and ask price levels from the Level 2 order book.
getPartOrderBookLevel2Depth100(params: { symbol: string }): Promise<APISuccessResponse<FullOrderBookDetail>>
symbol
string
required
Futures contract symbol.
const book = await client.getPartOrderBookLevel2Depth20({ symbol: 'XBTUSDTM' });
console.log('Top ask:', book.data.asks[0]); // [price, qty]
console.log('Top bid:', book.data.bids[0]); // [price, qty]

Trade History

getMarketTrades(params)

Returns the last 100 public trades for the specified symbol.
getMarketTrades(params: { symbol: string }): Promise<APISuccessResponse<MarketTradeDetail>>
symbol
string
required
Futures contract symbol.
tradeId
string
Transaction ID.
price
string
Fill price.
size
number
Fill quantity.
side
string
Taker side: buy or sell.
ts
number
Fill timestamp in nanoseconds.

Klines (Candlesticks)

getKlines(params)

Returns candlestick (OHLCV) data for a symbol. Data is bucketed by the requested granularity interval.
getKlines(params: GetKlinesRequest): Promise<APISuccessResponse<FuturesKline[]>>
symbol
string
required
Futures contract symbol, e.g. XBTUSDTM.
granularity
number
required
Bucket size in minutes. Common values: 1, 5, 15, 30, 60, 120, 240, 480, 720, 1440, 10080.
from
number
Start time as Unix timestamp in milliseconds (optional).
to
number
End time as Unix timestamp in milliseconds (optional).
Each element in the returned array is a tuple:
[0]
number
Open time (Unix timestamp ms).
[1]
number
Open price.
[2]
number
High price.
[3]
number
Low price.
[4]
number
Close price.
[5]
number
Trading volume in lots.
[6]
number
Trading volume in contract value.
import { FuturesClient } from 'kucoin-api';

const client = new FuturesClient();

const klines = await client.getKlines({
  symbol: 'XBTUSDTM',
  granularity: 60, // 1-hour candles
});

klines.data.forEach(([time, open, high, low, close, vol]) => {
  console.log(`${new Date(time).toISOString()} O:${open} H:${high} L:${low} C:${close} V:${vol}`);
});

Price Indexes

getMarkPrice(params)

Returns the current mark price for the specified symbol.
getMarkPrice(params: { symbol: string }): Promise<APISuccessResponse<FuturesMarkPrice>>
symbol
string
required
Futures contract symbol.
symbol
string
Contract symbol.
value
number
Current mark price.
indexPrice
number
Underlying spot index price.
timePoint
number
Data timestamp in milliseconds.
granularity
number
Granularity in milliseconds.

getIndex(params)

Returns historical spot index prices for the specified symbol with pagination support.
getIndex(params: GetInterestRatesRequest): Promise<
  APISuccessResponse<{
    dataList: IndexListItem[];
    hasMore: boolean;
  }>
>
symbol
string
required
Index symbol, e.g. .KXBT.
startAt
number
Start time (Unix ms, optional).
endAt
number
End time (Unix ms, optional).
reverse
boolean
Return results in reverse order (optional).
offset
number
Pagination offset (optional).
forward
boolean
Paginate forward (optional).
maxCount
number
Maximum number of records to return (optional).
dataList
IndexListItem[]
hasMore
boolean
Whether additional pages are available.

getPremiumIndex(params)

Returns premium index data for the specified symbol. The premium index measures the deviation between the futures price and the spot index.
getPremiumIndex(params: GetInterestRatesRequest): Promise<
  APISuccessResponse<{
    dataList: PremiumIndexItem[];
    hasMore: boolean;
  }>
>
symbol
string
required
Premium index symbol.
startAt
number
Start time (Unix ms, optional).
endAt
number
End time (Unix ms, optional).
reverse
boolean
Reverse pagination (optional).
offset
number
Pagination offset (optional).
forward
boolean
Paginate forward (optional).
maxCount
number
Max records (optional).

Volume & Interest Rates

get24HourTransactionVolume()

Returns the total platform-wide futures trading volume (turnover) over the last 24 hours.
get24HourTransactionVolume(): Promise<APISuccessResponse<{ turnoverOf24h: number }>>
turnoverOf24h
number
Total 24-hour turnover across all futures contracts.
const vol = await client.get24HourTransactionVolume();
console.log('24h turnover:', vol.data.turnoverOf24h);

getInterestRates(params?)

Returns historical interest rate index data for the specified symbol, used in funding rate calculations.
getInterestRates(params: GetInterestRatesRequest): Promise<
  APISuccessResponse<{
    dataList: InterestRateItem[];
    hasMore: boolean;
  }>
>
symbol
string
required
Interest rate symbol, e.g. .XBTINT.
startAt
number
Start time (Unix ms, optional).
endAt
number
End time (Unix ms, optional).
reverse
boolean
Return in reverse order (optional).
offset
number
Pagination offset (optional).
forward
boolean
Paginate forward (optional).
maxCount
number
Maximum records to return (optional).
dataList
InterestRateItem[]
hasMore
boolean
Whether more pages exist.
getIndex, getPremiumIndex, and getInterestRates all accept the same GetInterestRatesRequest parameter shape, enabling consistent pagination across these time-series endpoints.

Build docs developers (and LLMs) love