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
Bearer authentication of the form Bearer <token>, where token is your auth token.
Headers
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
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.
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.
Only these venue ids; repeat the parameter or comma-separate.
Only these venues, by code (okx, binance_usd-m), case-insensitive. A code no venue has matches nothing.
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.
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.
Only these base assets, by symbol (BTC), case-insensitive. A symbol no asset has matches nothing.
Only these quote assets, by symbol (USDT), case-insensitive. A symbol no asset has matches nothing.
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.
Page size, 1-100; larger values are clamped. Default 50.
nextCursor or prevCursor from a previous page, sent with the same filters and sort.
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.
Response
Pass as cursor for the next page. Null on the last page.
Pass as cursor for the previous page. Null on the first page.
Exact count matching the filter. Null unless include=total.
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.
The sequencer timestamp (epoch-ns) the data is complete through; also sent as X-Immix-As-Of-Seq-Ts. Null when unknown.