Get Instruments Info
Query for the instrument specification of online trading pairs.
Covers: Spot / USDT perpetual / 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 perpetual, USDC contract and Inverse contract symbols.
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 |
> 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 | Price limit parameters |
>> limitParameter | string | Price limit on Limit order. For example, "0.05" means 5%, so the order price of your buy order cannot exceed 105% of the Last Traded Price, while the order price of your sell order cannot be lower than 95% of the Last Traded Price |
>> marketParameter | string | Price limit on Market order. For example, assuming the market order limit for MNT/USDT is 5%. When the last traded price is at 2 USDT, a trader places a market order for 100,000 USDT. Any portion that could have been filled at above 2.1 USDT will be canceled. Assuming only 80,000 USDT order value can be filled at a price of 2.1 USDT or below, the remaining 20,000 USDT order value will be canceled since the deviation exceeds the 5% threshold. |
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": "199999.80",
"tickSize": "0.10"
},
"lotSizeFilter": {
"maxOrderQty": "100.000",
"maxMktOrderQty": "100.000",
"minOrderQty": "0.001",
"qtyStep": "0.001",
"postOnlyMaxOrderQty": "1000.000",
"minNotionalValue": "5"
},
"unifiedMarginTrade": true,
"fundingInterval": 480,
"settleCoin": "USDT",
"copyTrading": "both",
"upperFundingRate": "0.00375",
"lowerFundingRate": "-0.00375"
}
],
"nextPageCursor": ""
},
"retExtInfo": {},
"time": 1707186451514
}
// Pre-market Perpetual instrument structure
{
"retCode": 0,
"retMsg": "OK",
"result": {
"category": "linear",
"list": [
{
"symbol": "PRE02ZROUSDT",
"contractType": "LinearPerpetual",
"status": "PreLaunch",
"baseCoin": "PRE02ZRO",
"quoteCoin": "USDT",
"launchTime": "1718610229000",
"deliveryTime": "0",
"deliveryFeeRate": "",
"priceScale": "3",
"leverageFilter": {
"minLeverage": "1",
"maxLeverage": "5.00",
"leverageStep": "0.01"
},
"priceFilter": {
"minPrice": "0.001",
"maxPrice": "1999.998",
"tickSize": "0.001"
},
"lotSizeFilter": {
"maxOrderQty": "10000.0",
"minOrderQty": "0.1",
"qtyStep": "0.1",
"postOnlyMaxOrderQty": "10000.0",
"maxMktOrderQty": "2000.0",
"minNotionalValue": "5"
},
"unifiedMarginTrade": true,
"fundingInterval": 480,
"settleCoin": "USDT",
"copyTrading": "none",
"upperFundingRate": "0.03",
"lowerFundingRate": "-0.03",
"isPreListing": true,
"preListingInfo": {
"curAuctionPhase": "ContinuousTrading",
"phases": [
{
"phase": "CallAuction",
"startTime": "1718621400000",
"endTime": "1718707200000"
},
{
"phase": "CallAuctionNoCancel",
"startTime": "1718707200000",
"endTime": "1718707500000"
},
{
"phase": "CrossMatching",
"startTime": "1718707500000",
"endTime": "1718707800000"
},
{
"phase": "ContinuousTrading",
"startTime": "1718707800000",
"endTime": ""
}
],
"auctionFeeInfo": {
"auctionFeeRate": "0",
"takerFeeRate": "0.001",
"makerFeeRate": "0.0004"
}
}
}
],
"nextPageCursor": ""
},
"retExtInfo": {},
"time": 1719455285151
}
{
"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": {
"limitParameter": "0.05",
"marketParameter": "0.05"
}
}
]
},
"retExtInfo": {},
"time": 1672712468011
}