Instruments Metadata API

API providing useful instrument metadata (tick sizes, contract multipliers, normalised base and quote currencies, expiration dates etc.)

circle-info

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

https://api.tardis.dev/v1/instruments/:exchange/:symbol_idarrow-up-right

example URLs

response format

circle-info

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.

{
	id: string // symbol id
	datasetId: string // id used for CSV datasets downloads
	exchange: string // exchange id
	baseCurrency: string // normalized, so for example bitmex XBTUSD has base currency set to BTC not XBT
	quoteCurrency: string // normalized, so for example bitfinex BTCUST has quote currency set to USDT, not UST
	type: 'spot' | 'perpetual' | 'future' | 'option'
	active: boolean // indicates if the instrument can currently be traded.
	listing: string | undefined // exchange listing date in ISO format, if known
	availableSince: string // Tardis data collection start date in ISO format, may differ from exchange listing date
	availableTo: string | undefined // date in ISO format
	expiry: string | undefined // in ISO format, only for futures and options 
	priceIncrement: number  // price tick size, price precision can be calculated from it
	amountIncrement: number  // amount tick size, amount/size precision can be calculated from it
	minTradeAmount: number // min order size
	margin: boolean | undefined // set to true for margin enabled spot currency pairs, only available for spot symbols
	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
	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
	inverse: boolean | undefined // only for derivatives
	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
	contractMultiplier: number | undefined // only for derivatives
	quanto: boolean | undefined // set to true for quanto instruments, otherwise undefined
		settlementCurrency: string | undefined // settlement currency, only for quanto instruments as it has different base/quote currency
	strikePrice: number | undefined // strike price, only for options
        optionType: 'call' | 'put' // option type, only for options
	
	changes: undefined | {
		until: string // date in ISO format
		priceIncrement: number | undefined
		amountIncrement: number | undefined
		contractMultiplier: number | undefined
	}[]
}
circle-info

changes field semantics:

  • The changes array is sorted chronologically by until (ascending). Each entry records field values that were valid before the until date — i.e., the values changed at until.

  • Only contractMultiplier changes are guaranteed to be accurate and complete (monitored from exchange announcements). Other field changes (priceIncrement, amountIncrement) are tracked on a best-effort basis.

  • Changes are filtered to the instrument's availableSinceavailableTo range.

circle-info

Lifecycle field semantics:

  • active — reflects whether the instrument can currently be traded on the exchange. Use this to filter for live instruments.

  • availableTo — set when Tardis stops collecting data for an instrument (e.g., after expiry or delisting). This field is updated after the fact and may lag behind the actual exchange delisting.

  • Some exchanges reuse symbol IDs or maintain alias/legacy symbols alongside active ones. Both may appear in metadata results — use active to distinguish currently tradable instruments.

sample response

Instruments filter endpoint

Returns instruments array for given exchange matching provided optional filter

endpoint URL

https://api.tardis.dev/v1/instruments/:exchange?filter={filter_payload}arrow-up-right

example URLs

optional filter object format

JSON object, when provided via query string it needs be url encoded.

sample request in JavaScript

response format

Array of instruments objects as described for single instrument endpoint

Last updated