Skip to navigation

Search and list instruments

The instruments this environment serves, searched and filtered, sorted by symbol unless sort says otherwise. search matches word prefixes of the symbol, the venue’s own symbol, the type and the id; symbol looks up exact symbols, at most 100 per call. Page with limit and cursor; include adds the exact total, the facets behind the filter panels, or each row’s ticker.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

X-Request-IdstringOptional

Your own id for the request: 8 to 128 of [A-Za-z0-9._-]. It becomes the request’s id and is echoed on the response. A value off that grammar is replaced with a fresh id, never refused.

Query parameters

searchstringOptional

Case-insensitive word prefixes, matched against the instrument’s words: its symbol’s, the venue’s own symbol’s, its type’s, its id and, for a dated future, its expiry’s (jun 2027, jun27). Every word sent must be a prefix of one of them: btc usdt matches OKX@BTC/USDT:USDT, okx btc perp the OKX perpetual, 1000 the 1000PEPE markets and the ids starting 1000, perp every perpetual swap. Anything but ASCII letters and digits separates words and is otherwise ignored, so btc/usdt is btc usdt, and a search with no ASCII letter or digit filters nothing. Every match is listed: nothing is truncated.

symbolstringOptional

Only these symbols, case-insensitive, at most 100; repeat the parameter or comma-separate. A symbol that does not exist is simply absent from the page.

venueIdstringOptional

Only these venue ids; repeat the parameter or comma-separate.

venueId.notInstringOptional
Every venue except these ids.
venuestringOptional

Only these venues, by code (okx, binance_usd-m), case-insensitive. A code no venue has matches nothing.

typeenum or stringOptional

Only these types: SPOT, FUTURES, INVERSE_FUTURES, QUANTO_FUTURES, PERPETUAL_SWAP, INVERSE_PERPETUAL_SWAP, QUANTO_PERPETUAL_SWAP, OPTION, INVERSE_OPTION, INDEX, or another type an instrument has. Any other value is 400.

statusenum or stringOptional

Only these statuses: LISTED, OPEN, SUSPENDED, SETTLED, DELISTED, or another status an instrument has; any other value is 400. No default: send status=OPEN for the markets trading now.

baseAssetIdstringOptional
Only these base asset ids.
baseAssetstringOptional

Only these base assets, by symbol (BTC), case-insensitive. A symbol no asset has matches nothing.

quoteAssetIdstringOptional
Only these quote asset ids.
quoteAssetstringOptional

Only these quote assets, by symbol (USDT), case-insensitive. A symbol no asset has matches nothing.

sortstringOptional

Comma-separated symbol, instrumentId, type, listedAtNs, expiresAtNs, lastPx, pctChange24h, volume24h, turnover24h or turnoverUsd24h; prefix - for descending. Default symbol. volume24h is in base units and turnover24h in quote units, so neither compares markets of different assets: -turnoverUsd24h ranks every market by size. Absent values sort last in both directions: a time a row does not state, the statistics of an instrument that has never traded, a 24-hour statistic whose window is still warming, and any statistic the projection cannot state, such as a turnover it has no price to value or a USD turnover with no current rate.

limitintegerOptional

Page size, 1-100; larger values are clamped. Default 50.

cursorstringOptional

nextCursor or prevCursor from a previous page, sent with the same filters and sort.

includeenumOptional

total adds the exact count; ticker adds each row’s latest statistics, from the same snapshot the statistics sorts read; facets adds counts per venue, type, base and quote asset. Each facet ignores its own dimension’s filter and applies every other filter and the search, so a filter panel keeps its alternatives: with type=SPOT, types still counts every type the rest of the query matches, OPTION included, while venues and the asset facets count spot rows only. The count of what you chose is its own entry: SPOT in types.

Allowed values:

Response

A page of instruments.
itemslist of objects
nextCursorstring or null

Pass as cursor for the next page. Null on the last page.

prevCursorstring or null

Pass as cursor for the previous page. Null on the first page.

totalinteger or null

Exact count matching the filter. Null unless include=total.

facetsobject or null

Counts of matching instruments per dimension, null unless include=facets. Each dimension is counted under the request’s filters minus that dimension’s own filter, so a filter panel keeps showing the alternatives to the choice made in it: with type=SPOT, types counts every type the rest of the query matches, and the other three count spot instruments. Each value is what the matching filter takes: venues feeds venueId, types feeds type, baseAssets feeds baseAssetId and quoteAssets feeds quoteAssetId. Values with no matches are omitted; within a dimension the values sort by count, most first, then by value, ids as numbers and type names as text.

asOfSeqTsNsstring or nullformat: "^[0-9]+$"

The sequencer timestamp (epoch-ns) the data is complete through; also sent as X-Immix-As-Of-Seq-Ts. Null when unknown.

Errors

400
List Instruments Request Bad Request Error
401
List Instruments Request Unauthorized Error
503
List Instruments Request Service Unavailable Error