Get Instrument Info
Get the trading rules, leverage limits, fees, and tick size for every (or one) futures symbol.
HTTP
| Method | GET |
| Endpoint | /trade/api/v2/futures/instrument_info |
| Rate limit | 100 requests per 60 seconds |
Request Parameters
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
exchange | string | No | EXCHANGE_2. If omitted, returns info for all available futures exchanges. |
Example
- Python
- Java
- Go
- Node.js
import requests
headers, path = sign_request("GET", "/trade/api/v2/futures/instrument_info",
params={"exchange": "EXCHANGE_2"})
response = requests.get(BASE_URL + path, headers=headers)
print(response.json())
HttpResponse<String> resp = client.send(
"GET", "/trade/api/v2/futures/instrument_info",
Map.of("exchange", "EXCHANGE_2"), null);
System.out.println(resp.body());
headers, p, err := SignRequest("GET", "/trade/api/v2/futures/instrument_info", map[string]string{"exchange": "EXCHANGE_2"})
if err != nil { panic(err) }
req, _ := http.NewRequest("GET", BaseURL+p, nil)
for k, v := range headers { req.Header.Set(k, v) }
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
const {signRequest, BASE_URL} = require('./reference-client');
const {headers, path} = signRequest('GET', '/trade/api/v2/futures/instrument_info', {"exchange": "EXCHANGE_2"});
const r = await fetch(BASE_URL + path, {
method: 'GET',
headers,
});
console.log(await r.json());
Response
{
"data": {
"BTCUSDT": {
"symbol": "btc",
"base_asset": "btc",
"quote_asset": "usdt",
"status": "TRADING",
"type": "PERPETUAL_FUTURES",
"min_leverage": "1",
"max_leverage": "25",
"leverage_step": 1,
"min_base_quantity": "0.001",
"base_quantity_step_size": "0.001",
"lot_size": "0.001",
"quantity_precision": 3,
"price_precision": 2,
"tick_size": 1,
"max_market_base_quantity": "119",
"max_base_quantity": "952",
"risk_limit": "1000000",
"maint_margin_rate": "0.56",
"taker_fee_rate": "0.00065",
"maker_fee_rate": "0.00024",
"liq_fee_rate": "0.0075",
"quote_asset_precision": 1
}
}
}
Response Parameters
data is an object keyed by symbol. Each instrument:
| Field | Type | Description |
|---|---|---|
symbol | string | Lowercase base asset, e.g. "btc". |
base_asset / quote_asset | string | Lowercase. |
status | string | TRADING if open. |
type | string | PERPETUAL_FUTURES. |
min_leverage, max_leverage | string | Allowed leverage range. |
leverage_step | integer | Granularity for leverage updates (typically 1). |
min_base_quantity | string | Minimum order quantity. |
base_quantity_step_size | string | Quantity must be a multiple of this. |
lot_size | string | Same as base_quantity_step_size for most symbols. |
quantity_precision | integer | Decimal places for quantity. Negative values mean trailing zeros required (e.g. -2 for 1000PEPEUSDT means quantity must be a multiple of 100). |
price_precision | integer | Decimal places for price. |
tick_size | integer | Smallest price increment (in price_precision decimal places). |
max_market_base_quantity | string | Max single MARKET order size. |
max_base_quantity | string | Max LIMIT order size. |
risk_limit | string | Position-size risk cap. |
maint_margin_rate | string | Maintenance margin rate (percent). |
taker_fee_rate / maker_fee_rate | string | Default fee rates (decimal — 0.00065 = 0.065%). |
liq_fee_rate | string | Liquidation fee rate. |
quote_asset_precision | integer | Decimal places for position_value, unrealised_pnl, etc. |