Get Instruments Info
Query for the instrument specification of online trading pairs.
Covers: Spot / USDT contract / USDC contract / Inverse contract / Option
info
- Spot does not support pagination, so
limit
,cursor
are invalid. - When query by
baseCoin
, regardless of category=linear
orinverse
, the result will have USDT contract, USDC contract and Inverse contract symbols.
caution
The endpoint returns 500 entries by default, which doesn't represent all linear
symbols on the platform since recently. Use cursor
for pagination or limit
to get all entries.
HTTP Request
GET /v5/market/instruments-info
Request Parameters
Parameter | Required | Type | Comments |
---|---|---|---|
category | true | string | Product type. spot ,linear ,inverse ,option |
symbol | false | string | Symbol name, like BTCUSDT , uppercase only |
status | false | string | Symbol status filter
|
baseCoin | false | string | Base coin, uppercase only linear ,inverse ,option onlyoption : it returns BTC by default |
limit | false | integer | Limit for data size per page. [1 , 1000 ]. Default: 500 |
cursor | false | string | Cursor. Use the nextPageCursor token from the response to retrieve the next page of the result set |
Response Parameters
- Linear/Inverse
- Option
- Spot
Parameter | Type | Comments |
---|---|---|
category | string | Product type |
nextPageCursor | string | Cursor. Used to pagination |
list | array | Object |
> symbol | string | Symbol name |
> contractType | string | Contract type |
> status | string | Instrument status |
> baseCoin | string | Base coin |
> quoteCoin | string | Quote coin |
> launchTime | string | Launch timestamp (ms) |
> deliveryTime | string | Delivery timestamp (ms) |
> deliveryFeeRate | string | Delivery fee rate |
> priceScale | string | Price scale |
> leverageFilter | Object | Leverage attributes |
>> minLeverage | string | Minimum leverage |
>> maxLeverage | string | Maximum leverage |
>> leverageStep | string | The step to increase/reduce leverage |
> priceFilter | Object | Price attributes |
>> minPrice | string | Minimum order price |
>> maxPrice | string | Maximum order price |
>> tickSize | string | The step to increase/reduce order price |
> lotSizeFilter | Object | Size attributes |
>> minNotionalValue | string | Minimum notional value |
>> maxOrderQty | string | Maximum quantity for Limit and PostOnly order |
>> maxMktOrderQty | string | Maximum quantity for Market order |
>> minOrderQty | string | Minimum order quantity |
>> qtyStep | string | The step to increase/reduce order quantity |
>> postOnlyMaxOrderQty | string | deprecated, please use maxOrderQty |
> unifiedMarginTrade | boolean | Whether to support unified margin trade |
> fundingInterval | integer | Funding interval (minute) |
> settleCoin | string | Settle coin |
> copyTrading | string | Copy trade symbol or not |
> upperFundingRate | string | Upper limit of funding date |
> lowerFundingRate | string | Lower limit of funding date |
> riskParameters | object | Risk parameters for limit order price, refer to announcement |
>> priceLimitRatioX | string | Ratio X |
>> priceLimitRatioY | string | Ratio Y |
> isPreListing | boolean | |
> preListingInfo | object | |
>> curAuctionPhase | string | The current auction phase |
>> phases | array<object> | Each phase time info |
>>> phase | string | pre-market trading phase |
>>> startTime | string | The start time of the phase, timestamp(ms) |
>>> endTime | string | The end time of the phase, timestamp(ms) |
>> auctionFeeInfo | object | Action fee info |
>>> auctionFeeRate | string | The trading fee rate during auction phase |
>>> takerFeeRate | string | The taker fee rate during continues trading phase |
>>> makerFeeRate | string | The maker fee rate during continues trading phase |
Parameter | Type | Comments |
---|---|---|
category | string | Product type |
nextPageCursor | string | Cursor. Used to pagination |
list | array | Object |
> symbol | string | Symbol name |
> optionsType | string | Option type. Call , Put |
> status | string | Instrument status |
> baseCoin | string | Base coin |
> quoteCoin | string | Quote coin |
> settleCoin | string | Settle coin |
> launchTime | string | Launch timestamp (ms) |
> deliveryTime | string | Delivery timestamp (ms) |
> deliveryFeeRate | string | Delivery fee rate |
> priceFilter | Object | Price attributes |
>> minPrice | string | Minimum order price |
>> maxPrice | string | Maximum order price |
>> tickSize | string | The step to increase/reduce order price |
> lotSizeFilter | Object | Size attributes |
>> maxOrderQty | string | Maximum order quantity |
>> minOrderQty | string | Minimum order quantity |
>> qtyStep | string | The step to increase/reduce order quantity |
Parameter | Type | Comments |
---|---|---|
category | string | Product type |
list | array | Object |
> symbol | string | Symbol name |
> baseCoin | string | Base coin |
> quoteCoin | string | Quote coin |
> innovation | string | Whether or not this is an innovation zone token. 0 : false, 1 : true |
> status | string | Instrument status |
> marginTrading | string | Margin trade symbol or not
|
> stTag | string | Whether or not it has an special treatment label. 0 : false, 1 : true |
> lotSizeFilter | Object | Size attributes |
>> basePrecision | string | The precision of base coin |
>> quotePrecision | string | The precision of quote coin |
>> minOrderQty | string | Minimum order quantity |
>> maxOrderQty | string | Maximum order quantity |
>> minOrderAmt | string | Minimum order amount |
>> maxOrderAmt | string | Maximum order amount |
> priceFilter | Object | Price attributes |
>> tickSize | string | The step to increase/reduce order price |
> riskParameters | Object | Risk parameters for limit order price, refer to announcement |
>> priceLimitRatioX | string | Ratio X |
>> priceLimitRatioY | string | Ratio Y |
Request Example
- Linear
- Option
- Spot
- HTTP
- Python
- Go
- Java
- Node.js
GET /v5/market/instruments-info?category=linear&symbol=BTCUSDT HTTP/1.1
Host: api-testnet.bybit.com
from pybit.unified_trading import HTTP
session = HTTP(testnet=True)
print(session.get_instruments_info(
category="linear",
symbol="BTCUSDT",
))
import (
"context"
"fmt"
bybit "github.com/wuhewuhe/bybit.go.api"
)
client := bybit.NewBybitHttpClient("", "", bybit.WithBaseURL(bybit.TESTNET))
params := map[string]interface{}{"category": "linear", "symbol": "BTCUSDT"}
client.NewUtaBybitServiceWithParams(params).GetInstrumentInfo(context.Background())
import com.bybit.api.client.domain.CategoryType;
import com.bybit.api.client.domain.market.*;
import com.bybit.api.client.domain.market.request.MarketDataRequest;
import com.bybit.api.client.service.BybitApiClientFactory;
var client = BybitApiClientFactory.newInstance().newAsyncMarketDataRestClient();
var instrumentInfoRequest = MarketDataRequest.builder().category(CategoryType.LINEAR).symbol("BTCUSDT").instrumentStatus(InstrumentStatus.TRADING).limit(500).build();
client.getInstrumentsInfo(instrumentInfoRequest,System.out::println);
const { RestClientV5 } = require('bybit-api');
const client = new RestClientV5({
testnet: true,
});
client
.getInstrumentsInfo({
category: 'linear',
symbol: 'BTCUSDT',
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.error(error);
});
- HTTP
- Python
- Go
- Java
- Node.js
GET /v5/market/instruments-info?category=option&symbol=ETH-3JAN23-1250-P HTTP/1.1
Host: api-testnet.bybit.com
from pybit.unified_trading import HTTP
session = HTTP(testnet=True)
print(session.get_instruments_info(
category="option",
symbol="ETH-3JAN23-1250-P",
))
import (
"context"
"fmt"
bybit "github.com/wuhewuhe/bybit.go.api"
)
client := bybit.NewBybitHttpClient("", "", bybit.WithBaseURL(bybit.TESTNET))
params := map[string]interface{}{"category": "option", "symbol": "ETH-3JAN23-1250-P"}
client.NewUtaBybitServiceWithParams(params).GetInstrumentInfo(context.Background())
import com.bybit.api.client.domain.CategoryType;
import com.bybit.api.client.domain.market.*;
import com.bybit.api.client.domain.market.request.MarketDataRequest;
import com.bybit.api.client.service.BybitApiClientFactory;
var client = BybitApiClientFactory.newInstance().newAsyncMarketDataRestClient();
var instrumentInfoRequest = MarketDataRequest.builder().category(CategoryType.OPTION).symbol("ETH-3JAN23-1250-P").instrumentStatus(InstrumentStatus.TRADING).limit(500).build();
client.getInstrumentsInfo(instrumentInfoRequest,System.out::println);
const { RestClientV5 } = require('bybit-api');
const client = new RestClientV5({
testnet: true,
});
client
.getInstrumentsInfo({
category: 'option',
symbol: 'ETH-3JAN23-1250-P',
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.error(error);
});
- HTTP
- Python
- Go
- Java
- Node.js
GET /v5/market/instruments-info?category=spot&symbol=BTCUSDT HTTP/1.1
Host: api-testnet.bybit.com
from pybit.unified_trading import HTTP
session = HTTP(testnet=True)
print(session.get_instruments_info(
category="spot",
symbol="BTCUSDT",
))
import (
"context"
"fmt"
bybit "github.com/wuhewuhe/bybit.go.api"
)
client := bybit.NewBybitHttpClient("", "", bybit.WithBaseURL(bybit.TESTNET))
params := map[string]interface{}{"category": "spot", "symbol": "BTCUSDT"}
client.NewUtaBybitServiceWithParams(params).GetInstrumentInfo(context.Background())
import com.bybit.api.client.domain.*;
import com.bybit.api.client.domain.market.*;
import com.bybit.api.client.domain.market.request.*;
import com.bybit.api.client.service.BybitApiClientFactory;
var client = BybitApiClientFactory.newInstance().newAsyncMarketDataRestClient();
var instrumentInfoRequest = MarketDataRequest.builder().category(CategoryType.SPOT).symbol("BTCUSDT").instrumentStatus(InstrumentStatus.TRADING).limit(500).build();
client.getInstrumentsInfo(instrumentInfoRequest,System.out::println);
const { RestClientV5 } = require('bybit-api');
const client = new RestClientV5({
testnet: true,
});
client
.getInstrumentsInfo({
category: 'spot',
symbol: 'BTCUSDT',
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.error(error);
});
Response Example
- Linear
- Option
- Spot
// official USDT Perpetual instrument structure
{
"retCode": 0,
"retMsg": "OK",
"result": {
"category": "linear",
"list": [
{
"symbol": "BTCUSDT",
"contractType": "LinearPerpetual",
"status": "Trading",
"baseCoin": "BTC",
"quoteCoin": "USDT",
"launchTime": "1585526400000",
"deliveryTime": "0",
"deliveryFeeRate": "",
"priceScale": "2",
"leverageFilter": {
"minLeverage": "1",
"maxLeverage": "100.00",
"leverageStep": "0.01"
},
"priceFilter": {
"minPrice": "0.10",
"maxPrice": "1999999.80",
"tickSize": "0.10"
},
"lotSizeFilter": {
"maxOrderQty": "1190.000",
"minOrderQty": "0.001",
"qtyStep": "0.001",
"postOnlyMaxOrderQty": "1190.000",
"maxMktOrderQty": "500.000",
"minNotionalValue": "5"
},
"unifiedMarginTrade": true,
"fundingInterval": 480,
"settleCoin": "USDT",
"copyTrading": "both",
"upperFundingRate": "0.00375",
"lowerFundingRate": "-0.00375",
"isPreListing": false,
"preListingInfo": null,
"riskParameters": {
"priceLimitRatioX": "0.01",
"priceLimitRatioY": "0.02"
}
}
],
"nextPageCursor": ""
},
"retExtInfo": {},
"time": 1735809771618
}
// Pre-market Perpetual instrument structure
{
"retCode": 0,
"retMsg": "OK",
"result": {
"category": "linear",
"list": [
{
"symbol": "BIOUSDT",
"contractType": "LinearPerpetual",
"status": "PreLaunch",
"baseCoin": "BIO",
"quoteCoin": "USDT",
"launchTime": "1735032510000",
"deliveryTime": "0",
"deliveryFeeRate": "",
"priceScale": "4",
"leverageFilter": {
"minLeverage": "1",
"maxLeverage": "5.00",
"leverageStep": "0.01"
},
"priceFilter": {
"minPrice": "0.0001",
"maxPrice": "1999.9998",
"tickSize": "0.0001"
},
"lotSizeFilter": {
"maxOrderQty": "70000",
"minOrderQty": "1",
"qtyStep": "1",
"postOnlyMaxOrderQty": "70000",
"maxMktOrderQty": "14000",
"minNotionalValue": "5"
},
"unifiedMarginTrade": true,
"fundingInterval": 480,
"settleCoin": "USDT",
"copyTrading": "none",
"upperFundingRate": "0.05",
"lowerFundingRate": "-0.05",
"isPreListing": true,
"preListingInfo": {
"curAuctionPhase": "ContinuousTrading",
"phases": [
{
"phase": "CallAuction",
"startTime": "1735113600000",
"endTime": "1735116600000"
},
{
"phase": "CallAuctionNoCancel",
"startTime": "1735116600000",
"endTime": "1735116900000"
},
{
"phase": "CrossMatching",
"startTime": "1735116900000",
"endTime": "1735117200000"
},
{
"phase": "ContinuousTrading",
"startTime": "1735117200000",
"endTime": ""
}
],
"auctionFeeInfo": {
"auctionFeeRate": "0",
"takerFeeRate": "0.001",
"makerFeeRate": "0.0004"
}
},
"riskParameters": {
"priceLimitRatioX": "0.05",
"priceLimitRatioY": "0.1"
}
}
],
"nextPageCursor": "first%3DBIOUSDT%26last%3DBIOUSDT"
},
"retExtInfo": {},
"time": 1735810114435
}
{
"retCode": 0,
"retMsg": "OK",
"result": {
"category": "option",
"nextPageCursor": "",
"list": [
{
"symbol": "ETH-3JAN23-1250-P",
"status": "Trading",
"baseCoin": "ETH",
"quoteCoin": "USD",
"settleCoin": "USDC",
"optionsType": "Put",
"launchTime": "1672560000000",
"deliveryTime": "1672732800000",
"deliveryFeeRate": "0.00015",
"priceFilter": {
"minPrice": "0.1",
"maxPrice": "10000000",
"tickSize": "0.1"
},
"lotSizeFilter": {
"maxOrderQty": "1500",
"minOrderQty": "0.1",
"qtyStep": "0.1"
}
}
]
},
"retExtInfo": {},
"time": 1672712537130
}
{
"retCode": 0,
"retMsg": "OK",
"result": {
"category": "spot",
"list": [
{
"symbol": "BTCUSDT",
"baseCoin": "BTC",
"quoteCoin": "USDT",
"innovation": "0",
"status": "Trading",
"marginTrading": "utaOnly",
"stTag": "0",
"lotSizeFilter": {
"basePrecision": "0.000001",
"quotePrecision": "0.00000001",
"minOrderQty": "0.000048",
"maxOrderQty": "71.73956243",
"minOrderAmt": "1",
"maxOrderAmt": "2000000"
},
"priceFilter": {
"tickSize": "0.01"
}
"riskParameters": {
"priceLimitRatioX": "0.01",
"priceLimitRatioY": "0.02"
}
}
]
},
"retExtInfo": {},
"time": 1672712468011
}