Instruments Metadata API
API providing useful instrument metadata (tick sizes, contract multipliers, normalised base and quote currencies, expiration dates etc.)
Instruments metadata API is available only for active pro and business subscriptions.

Authorization

Please provide 'Authorization' header with value: 'Bearer YOUR_API_KEY'.

Single instrument info endpoint

Returns instrument info for provided exchange and symbol.

endpoint URL format

example URLs

response format

changes info returned by the API is meant to be accurate and complete only for contractMultiplier values (we monitor exchanges announcements for that), rest of the changes are done on best effort basis and not always complete.
1
{
2
id: string // symbol id
3
datasetId: string // id used for CSV datasets downloads
4
exchange: string // exchange id
5
baseCurrency: string // normalized, so for example bitmex XBTUSD has base currency set to BTC not XBT
6
quoteCurrency: string // normalized, so for example bitfinex BTCUST has quote currency set to USDT, not UST
7
type: 'spot' | 'perpetual' | 'future' | 'option'
8
active: boolean // indicates if the instrument can currently be traded.
9
availableSince: string, // date in ISO format
10
availableTo: string | undefined, // date in ISO format
11
expiry: string | undefined // in ISO format, only for futures and options
12
priceIncrement: number // price tick size, price precision can be calculated from it
13
amountIncrement: number // amount tick size, amount/size precision can be calculated from it
14
minTradeAmount: number // min order size
15
makerFee: number // consider it as illustrative only, as it depends in practice on account traded volume levels, different categories, VIP levels, owning exchange currency etc
16
takerFee: number // consider it as illustrative only, as it depends in practice on account traded volume levels, different categories, VIP levels, owning exchange currency etc
17
inverse: boolean | undefined // only for derivatives
18
contractType: "move" | "linear_future" | "inverse_future" | "quanto_future" | "linear_perpetual" | "inverse_perpetual" | "quanto_perpetual" | "put_option" | "call_option" | "turbo_put_option" | "turbo_call_option" | "spread" | "interest_rate_swap" | "repo" | "index" // only for derivatives, detailed contract type
19
contractMultiplier: number | undefined // only for derivatives
20
quanto: boolean | undefined // set to true for quanto instruments, otherwise undefined
21
settlementCurrency: string | undefined // settlement currency, only for quanto instruments as it's different base/quote currency
22
strikePrice: number | undefined // strike price, only for options
23
optionType: 'call' | 'put' // option type, only for options
24
25
changes: undefined | {
26
until: string // date in ISO format
27
priceIncrement: number | undefined
28
amountIncrement: number | undefined
29
contractMultiplier: number | undefined
30
}[]
31
}
Copied!

sample response

1
{
2
"id": "XBTUSD",
3
"datasetId": "XBTUSD",
4
"exchange": "bitmex",
5
"baseCurrency": "BTC",
6
"quoteCurrency": "USD",
7
"type": "perpetual",
8
"active": true,
9
"availableSince": "2019-03-30T00:00:00.000Z",
10
"priceIncrement": 0.5,
11
"amountIncrement": 1,
12
"minTradeAmount": 1,
13
"makerFee": -0.00025,
14
"takerFee": 0.00075,
15
"inverse": true,
16
"contractType": "inverse_perpetual",
17
"contractMultiplier": 1
18
}
Copied!

Instruments filter endpoint

Returns instruments array for given exchange matching provided optional filter

endpoint URL

example URLs

optional filter object format

JSON object, when provided via query string it needs be url encoded.
1
{
2
baseCurrency: string | string[] | undefined
3
quoteCurrency: string | string[] | undefined
4
type: string | string[] | undefined
5
contractType: string | string[] | undefined
6
active: boolean | undefined
7
}
Copied!

sample request in JavaScript

1
const payload = {
2
baseCurrency: 'BTC',
3
quoteCurrency: ['USD', 'USDT'],
4
type: 'perpetual'
5
}
6
7
const headers = {
8
Authorization: 'Bearer YOUR_API_KEY'
9
}
10
11
const encodedPayload = encodeURIComponent(JSON.stringify(payload))
12
await fetch(`https://api.tardis.dev/v1/instruments/bitmex?filter=${encodedPayload}`, { headers })
Copied!

response format

Array of instruments objects as described for single instrument endpoint
Last modified 1mo ago